สำหรับการรวมกัน ใช้ $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" }