MongoDB में शर्त के साथ कनकैटेनेशन करने के लिए $cond का उपयोग करें और उसमें $concat के साथ काम करें। आइए एक कलेक्शन बनाते हैं:
> db.demo745.insertOne({Value1:"100",Value2:"100"}); { "acknowledged" : true, "insertedId" : ObjectId("5eae6419a930c785c834e554") }
> db.demo745.insertOne({Value1:"40",Value2:"50"}); { "acknowledged" : true, "insertedId" : ObjectId("5eae6421a930c785c834e555") }
> db.demo745.insertOne({Value1:"13",Value2:"45"}); { "acknowledged" : true, "insertedId" : ObjectId("5eae6429a930c785c834e556") }
find() से सभी डॉक्यूमेंट्स देखें:
> db.demo745.find();
आउटपुट:
{ "_id" : ObjectId("5eae6419a930c785c834e554"), "Value1" : "100", "Value2" : "100" }
{ "_id" : ObjectId("5eae6421a930c785c834e555"), "Value1" : "40", "Value2" : "50" }
{ "_id" : ObjectId("5eae6429a930c785c834e556"), "Value1" : "13", "Value2" : "45" }
शर्त के साथ कनकैटेनेशन के लिए क्वेरी ($redact के साथ):
> db.demo745.aggregate( [ { "$redact": { "$cond": [ { "$eq": [ { "$concat": [ "$Value1","$Value2" ] }, "1345" ] }, "$$KEEP", "$$PRUNE" ] } } ] )
परिणाम (केवल वही डॉक्यूमेंट जहां कनकैटेनेशन "1345" से मेल खाता है):
{ "_id" : ObjectId("5eae6429a930c785c834e556"), "Value1" : "13", "Value2" : "45" }