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

คิวรี่ MongoDB ค้นหาข้อมูลจากอาร์เรย์ภายในออบเจกต์

ใช้ dot notation (สัญลักษณ์จุด) เพื่อค้นหาข้อมูลในอาร์เรย์ที่อยู่ภายในออบเจกต์ เริ่มต้นด้วยการสร้างคอลเลกชันตัวอย่าง:

> db.findDataDemo.insertOne(
  {
    "_id": new ObjectId(),
    "CustomerName":"John",
    "CustomerDetails" : {
      "CountryName" : [ "AUS" ],
      "isMarried" : [ false ]
    }
  }
);
{ "acknowledged" : true, "insertedId" : ObjectId("5cefa5eeef71edecf6a1f6a5") }
> db.findDataDemo.insertOne(
  {
    "_id": new ObjectId(),
    "CustomerName":"Carol",
    "CustomerDetails" : {
      "CountryName" : [ "UK" ],
      "isMarried" : [ true ]
    }
  }
);
{ "acknowledged" : true, "insertedId" : ObjectId("5cefa60aef71edecf6a1f6a6") }

แสดงเอกสารทั้งหมด:

> db.findDataDemo.find().pretty();
{ "_id" : ObjectId("5cefa5eeef71edecf6a1f6a5"), "CustomerName" : "John", "CustomerDetails" : { "CountryName" : [ "AUS" ], "isMarried" : [ false ] } }
{ "_id" : ObjectId("5cefa60aef71edecf6a1f6a6"), "CustomerName" : "Carol", "CustomerDetails" : { "CountryName" : [ "UK" ], "isMarried" : [ true ] } }

คิวรี่ค้นหาเอกสารที่ CountryName เป็น "UK" (ใช้ dot notation):

> db.findDataDemo.find({"CustomerDetails.CountryName":"UK"});

เทคนิค: ใช้ CustomerDetails.CountryName (dot notation) เพื่อเข้าถึงฟิลด์ภายในออบเจกต์ที่เป็นอาร์เรย์ MongoDB จะค้นหาในอาร์เรย์อัตโนมัติ