Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

MongoDB: ค้นหาเอกสารที่มีค่า NumberInt() ใน Nested Field

NumberInt() ใช้ระบุ integer 32-bit ชัดเจน (MongoDB shell default เป็น 64-bit float) สร้างคอลเลกชันตัวอย่าง:

> db.demo357.insertOne({
  "FirstName" : "Chris", "Age" : 21,
  "details" : { "studentDetails" : { "id" : NumberInt(101) } }
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e568fa6f8647eb59e5620c9") }
> db.demo357.insertOne({
  "FirstName" : "David", "Age" : 23,
  "details" : { "studentDetails" : { "id" : NumberInt(110) } }
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e568fbaf8647eb59e5620ca") }

แสดงข้อมูล:

> db.demo357.find();

ค้นหาเอกสารที่ details.studentDetails.id = NumberInt(110):

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

ผลลัพธ์:

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

ข้อมูลเกี่ยวกับ Number Types ใน MongoDB

  • NumberInt(): 32-bit signed integer (-2^31 ถึง 2^31-1)
  • NumberLong(): 64-bit signed integer
  • NumberDecimal(): 128-bit decimal (high precision)
  • MongoDB shell ค่าเลข default เป็น double (64-bit float)
  • การ query: NumberInt(110) จับคู่ได้กับค่า 110 ทุกประเภท (int, long, double)
  • ใน driver ต่างๆ ใช้ native integer type ของภาษานั้น