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

การต่อสตริงมีเงื่อนไขใน MongoDB

ใช้ $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" }