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

ใช้ find() เพื่อค้นหาคีย์ที่ซ้อนกันใน MongoDB หรือไม่


สำหรับ find() เพื่อค้นหาคีย์ที่ซ้อนกันใน MongoDB คุณสามารถใช้เครื่องหมายจุด (.) ต่อไปนี้เป็นไวยากรณ์

db.yourCollectionName.find({"yourOuterFieldName.yourInnerFieldName":"yourValue"}).pretty();

ให้เราสร้างคอลเลกชันที่มีเอกสารก่อน:

>db.searchForNestedKeysDemo.insertOne({"ClientName":"Larry","ClientAge":28,"ClientExtra
Details":{"isEducated":true,"CountryName":"US"}});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ca20e8b66324ffac2a7dc64")
}
>db.searchForNestedKeysDemo.insertOne({"ClientName":"Chris","ClientAge":29,"ClientExtra
Details":{"isEducated":false,"CountryName":"UK"}});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ca20ea366324ffac2a7dc65")
}
>db.searchForNestedKeysDemo.insertOne({"ClientName":"David","ClientAge":39,"ClientExtra
Details":{"isEducated":true,"CountryName":"AUS"}});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ca20eba66324ffac2a7dc66")
}

ต่อไปนี้เป็นแบบสอบถามเพื่อแสดงเอกสารทั้งหมดจากคอลเลกชันโดยใช้วิธี find()

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

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้

{
   "_id" : ObjectId("5ca20e8b66324ffac2a7dc64"),
   "ClientName" : "Larry",
   "ClientAge" : 28,
   "ClientExtraDetails" : {
      "isEducated" : true,
      "CountryName" : "US"
   }
}
{
   "_id" : ObjectId("5ca20ea366324ffac2a7dc65"),
   "ClientName" : "Chris",
   "ClientAge" : 29,
   "ClientExtraDetails" : {
      "isEducated" : false,
      "CountryName" : "UK"
   }
}
{
   "_id" : ObjectId("5ca20eba66324ffac2a7dc66"),
   "ClientName" : "David",
   "ClientAge" : 39,
   "ClientExtraDetails" : {
      "isEducated" : true,
      "CountryName" : "AUS"
   }
}

ต่อไปนี้เป็นแบบสอบถามเพื่อค้นหาคีย์ที่ซ้อนกันใน MongoDB

> db.searchForNestedKeysDemo.find({"ClientExtraDetails.CountryName":"UK"}).pretty();

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้

{
   "_id" : ObjectId("5ca20ea366324ffac2a7dc65"),
   "ClientName" : "Chris",
   "ClientAge" : 29,
   "ClientExtraDetails" : {
      "isEducated" : false,
      "CountryName" : "UK"
   }
}