MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

मोंगोडीबी $cmp

MongoDB में, $cmp एकत्रीकरण पाइपलाइन ऑपरेटर दो मानों की तुलना करता है और या तो -1 . देता है , 1 , या 0 , इस पर निर्भर करता है कि पहला मान पहले मान से छोटा, बड़ा या उसके बराबर है या नहीं।

विशेष रूप से, $cmp ऑपरेटर रिटर्न:

  • -1 यदि पहला मान दूसरे से कम है।
  • 1 यदि पहला मान दूसरे से बड़ा है।
  • 0 यदि दो मान समान हैं।

उदाहरण

मान लीजिए हमारे पास data . नामक संग्रह है निम्नलिखित दस्तावेजों के साथ:

{ "_id" : 1, "a" : 2, "b" : 2 }
{ "_id" : 2, "a" : 2, "b" : 3 }
{ "_id" : 3, "a" : 3, "b" : 2 }

हम $cmp . का उपयोग कर सकते हैं a . की तुलना करने के लिए ऑपरेटर और b फ़ील्ड:

db.data.aggregate(
  [
    { $project: { 
        _id: 0,
        a: 1,
        b: 1,
        result: { $cmp: [ "$a", "$b" ] }
      }
    }
  ]
)

परिणाम:

{ "a" : 2, "b" : 2, "result" : 0 }
{ "a" : 2, "b" : 3, "result" : -1 }
{ "a" : 3, "b" : 2, "result" : 1 }

विभिन्न प्रकारों की तुलना करना

$cmp ऑपरेटर विभिन्न प्रकार के मूल्यों के लिए निर्दिष्ट बीएसओएन तुलना क्रम का उपयोग करके मूल्य और प्रकार दोनों की तुलना करता है।

मान लीजिए हम अपने संग्रह में निम्नलिखित दस्तावेज़ जोड़ते हैं:

{ "_id" : 4, "a" : ISODate("2021-01-03T23:30:15.100Z"), "b" : ISODate("2019-12-08T04:00:20.112Z") }
{ "_id" : 5, "a" : 2, "b" : ISODate("2019-12-08T04:00:20.112Z") }
{ "_id" : 6, "a" : ISODate("2019-12-08T04:00:20.112Z"), "b" : 2 }
{ "_id" : 7, "a" : null, "b" : 2 }
{ "_id" : 8, "a" : 2, "b" : null }
{ "_id" : 9, "a" : null, "b" : null }
{ "_id" : 10, "a" : Infinity, "b" : 3 }
{ "_id" : 11, "a" : 2, "b" : Infinity }
{ "_id" : 12, "a" : Infinity, "b" : Infinity }

यहां बताया गया है कि जब हम $cmp . लागू करते हैं तो क्या होता है नए दस्तावेज़ों के लिए:

db.data.aggregate(
  [
    { $match: { _id: { $nin: [ 1, 2, 3 ] } } },
    { $project: { 
        a: 1,
        b: 1,
        result: { $cmp: [ "$a", "$b" ] }
      }
    }
  ]
).pretty()

परिणाम:

{
	"_id" : 4,
	"a" : ISODate("2021-01-03T23:30:15.100Z"),
	"b" : ISODate("2019-12-08T04:00:20.112Z"),
	"result" : 1
}
{
	"_id" : 5,
	"a" : 2,
	"b" : ISODate("2019-12-08T04:00:20.112Z"),
	"result" : -1
}
{
	"_id" : 6,
	"a" : ISODate("2019-12-08T04:00:20.112Z"),
	"b" : 2,
	"result" : 1
}
{ "_id" : 7, "a" : null, "b" : 2, "result" : -1 }
{ "_id" : 8, "a" : 2, "b" : null, "result" : 1 }
{ "_id" : 9, "a" : null, "b" : null, "result" : 0 }
{ "_id" : 10, "a" : Infinity, "b" : 3, "result" : 1 }
{ "_id" : 11, "a" : 2, "b" : Infinity, "result" : -1 }
{ "_id" : 12, "a" : Infinity, "b" : Infinity, "result" : 0 }

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगोडीबी सुरक्षा - नोएसक्यूएल डीबी सुरक्षित रखने के लिए संसाधन

  2. MongoDB आधार एक से संग्रह क्षेत्र में शामिल होने के लिए जोड़ें

  3. MongoDB:प्रत्येक स्थिति मान परिवर्तन के बीच रहने के समय की गणना करें

  4. स्ट्रिंग से प्रत्येक गैर utf-8 प्रतीकों को हटाएं

  5. NoSQL (MongoDB) बनाम Lucene (या Solr) आपके डेटाबेस के रूप में