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

คิวรี่ MongoDB สำหรับ Partial Object ในอาร์เรย์

ค้นหาเอกสารที่มีออบเจกต์บางส่วน (partial object) ในอาร์เรย์ ได้ 2 วิธี เริ่มต้นด้วยการสร้างคอลเลกชันตัวอย่าง:

> db.queryForPartialObjectDemo.insertOne({_id:new ObjectId(), "StudentDetails": [{"StudentId":1, "StudentName":"Chris"}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cdfcf55bf3115999ed51206") }
> db.queryForPartialObjectDemo.insertOne({_id:new ObjectId(), "StudentDetails": [{"StudentId":2, "StudentName":"David"}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cdfcf55bf3115999ed51207") }

แสดงเอกสาร:

> db.queryForPartialObjectDemo.find().pretty();

วิธีที่ 1: ระบุออบเจกต์ทั้งหมดในเงื่อนไข

> db.queryForPartialObjectDemo.find({StudentDetails: {StudentId: 1, "StudentName" : "Chris"}});

วิธีที่ 2: ใช้ Dot Notation (แนะนำ)

> db.queryForPartialObjectDemo.find({"StudentDetails.StudentName":"Chris"});

ความแตกต่าง: วิธีที่ 1 ต้องระบุฟิลด์ทุกตัวของออบเจกต์ที่ต้องการจับคู่ ในขณะที่วิธีที่ 2 (dot notation) ระบุแค่ฟิลด์ที่ต้องการค้นหา กระชับกว่าและยืดหยุ่นกว่า