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

แบบสอบถาม MongoDB เพื่อค้นหาการรวมฟิลด์ของ FirstName และ LastName?


สำหรับการรวมกัน ใช้ $concat และตรวจสอบความเท่าเทียมกันโดยใช้ $eq ให้เราสร้างคอลเลกชันที่มีเอกสาร -

> db.demo502.insertOne({"FirstName":"John","LastName":"Smith"});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e875534987b6e0e9d18f56d")
}
> db.demo502.insertOne({"FirstName":"David","LastName":"Miller"});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e87553e987b6e0e9d18f56e")
}
> db.demo502.insertOne({"FirstName":"John","LastName":"Doe"});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e875543987b6e0e9d18f56f")
}

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

> db.demo502.find();

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

{ "_id" : ObjectId("5e875534987b6e0e9d18f56d"), "FirstName" : "John", "LastName" : "Smith"
}
{ "_id" : ObjectId("5e87553e987b6e0e9d18f56e"), "FirstName" : "David", "LastName" : "Miller"
}
{ "_id" : ObjectId("5e875543987b6e0e9d18f56f"), "FirstName" : "John", "LastName" : "Doe" }

ต่อไปนี้คือการค้นหาเพื่อค้นหาในชุดค่าผสมฟิลด์ -

> db.demo502.aggregate(
...    [
...       { "$redact": {
...          "$cond": [
...             { "$eq": [
...                { "$concat": [ "$FirstName", " ", "$LastName" ] },
...                "John Doe"
...             ]},
...             "$$KEEP",
...             "$$PRUNE"
...          ]
...       }}
...    ]
... )

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

{ "_id" : ObjectId("5e875543987b6e0e9d18f56f"), "FirstName" : "John", "LastName" : "Doe" }