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

ค้นหาเมื่อไม่รู้จักคีย์ใน MongoDB?


หากต้องการค้นหาเมื่อไม่ทราบคีย์ ให้ใช้ $addField และ $objectToArray ให้เราสร้างคอลเลกชันที่มีเอกสารก่อน -

> db.demo375.insertOne(
...    {
...       "details":{
...          "Name":"John",
...          "Age":23
...       }
...    }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e5a0ae42ae06a1609a00b06")
}
> db.demo375.insertOne(
...    {
...       "details":{
...          "Name":"David",
...          "Age":21
...       }
...    }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e5a0ae42ae06a1609a00b07")
}
> db.demo375.insertOne(
...    {
...       "details":{
...          "Name":"David",
...          "Age":22
...       }
...    }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e5a0ae42ae06a1609a00b08")
}

แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้วิธี find() -

> db.demo375.find();

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

{ "_id" : ObjectId("5e5a0ae42ae06a1609a00b06"), "details" : { "Name" : "John", "Age" : 23 } }
{ "_id" : ObjectId("5e5a0ae42ae06a1609a00b07"), "details" : { "Name" : "David", "Age" : 21 } }
{ "_id" : ObjectId("5e5a0ae42ae06a1609a00b08"), "details" : { "Name" : "David", "Age" : 22 } }

ต่อไปนี้เป็นแบบสอบถามเพื่อค้นหาเมื่อคีย์ไม่เป็นที่รู้จัก -

> db.demo375.aggregate([
...    { "$addFields": {
...       "UnknownKeys": { "$objectToArray": "$$ROOT" }
...    }},
...    { "$match": { "UnknownKeys.v.Name": "David" }},
...    { "$project": { "UnknownKeys": 0 }}
... ])

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

{ "_id" : ObjectId("5e5a0ae42ae06a1609a00b07"), "details" : { "Name" : "David", "Age" : 21 } }
{ "_id" : ObjectId("5e5a0ae42ae06a1609a00b08"), "details" : { "Name" : "David", "Age" : 22 } }