Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Truy vấn document với trường NumberInt() trong MongoDB

Tìm kiếm chính xác 32-bit integer với NumberInt

NumberInt() ép kiểu giá trị thành 32-bit signed integer. Quan trọng khi truy vấn trường được lưu dưới dạng NumberInt.

Dữ liệu với NumberInt

> db.demo357.insertOne({
    "FirstName": "Chris",
    "Age": 21,
    "details": { "studentDetails": { "id": NumberInt(101) } }
});
> db.demo357.insertOne({
    "FirstName": "David",
    "Age": 23,
    "details": { "studentDetails": { "id": NumberInt(110) } }
});

Tìm document id = 110

> db.demo357.find({ "details.studentDetails.id": NumberInt(110) });

Kết quả

{
    "_id": ObjectId("..."),
    "FirstName": "David",
    "Age": 23,
    "details": { "studentDetails": { "id": 110 } }
}

Lưu ý:

  • MongoDB shell tự động chuyển số nhỏ thành NumberInt
  • Driver các ngôn ngữ có class NumberInt riêng (PyMongo: Int32, Node: Int32)
  • Sai kiểu (int64 vs int32) sẽ không khớp: NumberLong(110) ≠ NumberInt(110)
  • Trong aggregation: { $convert: { input: "$id", to: "int" } }