$cmp ऑपरेटर से दो फील्ड्स की तुलना करें
MongoDB एग्रीगेशन पाइपलाइन में एक ही दस्तावेज़ के दो फील्ड्स की तुलना करने के लिए $cmp ऑपरेटर का उपयोग करें।
उदाहरण डेटा
> db.matchBetweenFieldsDemo.insertOne({"FirstValue":40,"SecondValue":70});
{ "acknowledged" : true, "insertedId" : ObjectId("5c92c9625259fcd19549980d") }
> db.matchBetweenFieldsDemo.insertOne({"FirstValue":20,"SecondValue":5});
{ "acknowledged" : true, "insertedId" : ObjectId("5c92c96b5259fcd19549980e") }
सभी दस्तावेज़:
> db.matchBetweenFieldsDemo.find().pretty();
Aggregation में तुलना: FirstValue > SecondValue वाले दस्तावेज़
> db.matchBetweenFieldsDemo.aggregate([ {$project: { firstGreaterThanOrNot: {$cmp: ['$FirstValue', '$SecondValue']} }}, {$match: {firstGreaterThanOrNot: {$gt: 0}}} ]);व्याख्या:
$cmp: ['$FirstValue', '$SecondValue']दो फील्ड्स की तुलना करता है- परिणाम:
1(पहला बड़ा),0(बराबर),-1(दूसरा बड़ा) $matchकेवल उन्हीं दस्तावेज़ों को पास करता है जहां परिणाम> 0हो (यानी FirstValue > SecondValue)
अन्य उपयोग: $cmp का उपयोग $project, $match, $group आदि स्टेज में किया जा सकता है।