ใช้ $cond และ $concat ใน $redact
สามารถต่อสตริงและตรวจสอบเงื่อนไขพร้อมกันได้ด้วย $cond ภายใน $redact โดยใช้ $concat รวมค่า
สร้างข้อมูลตัวอย่าง
> db.demo745.insertOne({Value1:"100",Value2:"100"});
> db.demo745.insertOne({Value1:"40",Value2:"50"});
> db.demo745.insertOne({Value1:"13",Value2:"45"});
แสดงข้อมูลทั้งหมด
> db.demo745.find();
ผลลัพธ์:
{ "_id" : ObjectId("5eae6419a930c785c834e554"), "Value1" : "100", "Value2" : "100" }
{ "_id" : ObjectId("5eae6421a930c785c834e555"), "Value1" : "40", "Value2" : "50" }
{ "_id" : ObjectId("5eae6429a930c785c834e556"), "Value1" : "13", "Value2" : "45" }
คิวรี: เก็บเฉพาะเอกสารที่ต่อ Value1+Value2 ได้ "1345"
> db.demo745.aggregate([
{ "$redact": {
"$cond": [
{ "$eq": [ { "$concat": [ "$Value1","$Value2" ] }, "1345" ] },
"$$KEEP",
"$$PRUNE"
]
}}
])
ผลลัพธ์: เหลือเฉพาะเอกสารที่ Value1=13, Value2=45
{ "_id" : ObjectId("5eae6429a930c785c834e556"), "Value1" : "13", "Value2" : "45" }