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

क्वेरी ऑपरेटर में MongoDB $

MongoDB में, $in क्वेरी ऑपरेटर उन दस्तावेज़ों का चयन करता है जहाँ फ़ील्ड का मान निर्दिष्ट सरणी में किसी भी मान के बराबर होता है।

$in क्वेरी ऑपरेटर को $in . के साथ भ्रमित नहीं होना चाहिए एकत्रीकरण पाइपलाइन ऑपरेटर, जो एक बूलियन देता है जो दर्शाता है कि निर्दिष्ट मान सरणी में है या नहीं।

उदाहरण

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

{ "_id" : 1, "prod" : "Shorts" }
{ "_id" : 2, "prod" : "Jeans", "sizes" : null }
{ "_id" : 3, "prod" : "Shirt", "sizes" : "L" }
{ "_id" : 4, "prod" : "Shirt", "sizes" : "M" }
{ "_id" : 5, "prod" : "Bat", "sizes" : [ "S", "M", "XL", "XXL" ] }
{ "_id" : 6, "prod" : "Hat", "sizes" : [ "S", "L", "XL" ] }
{ "_id" : 7, "prod" : "Cap", "sizes" : [ "XS", "S", "M", "L", "XL" ] }

हम $in . का उपयोग कर सकते हैं विशिष्ट _id . के साथ केवल उन दस्तावेज़ों का चयन करने के लिए ऑपरेटर मान।

उदाहरण कोड:

db.products.find({ 
  _id: { $in: [ 1, 2, 3 ] } 
})

परिणाम:

{ "_id" : 1, "prod" : "Shorts" }
{ "_id" : 2, "prod" : "Jeans", "sizes" : null }
{ "_id" : 3, "prod" : "Shirt", "sizes" : "L" }

इस मामले में, हमें केवल वही दस्तावेज़ चाहिए थे जिनमें एक _id . हो 1 . का मान , 2 , या 3

उदाहरण 2

यहाँ एक और उदाहरण है। इस बार हम $in . का उपयोग करते हैं एक अलग क्षेत्र के खिलाफ।

db.products.find({ 
  sizes: { $in: [ "L" ] } 
})

परिणाम:

{ "_id" : 3, "prod" : "Shirt", "sizes" : "L" }
{ "_id" : 6, "prod" : "Hat", "sizes" : [ "S", "L", "XL" ] }
{ "_id" : 7, "prod" : "Cap", "sizes" : [ "XS", "S", "M", "L", "XL" ] }

इस उदाहरण में हमने $in . लागू किया है sizes . तक खेत।

इस मामले में, पहले दस्तावेज़ में एक स्ट्रिंग के रूप में मान था, जबकि अन्य दो दस्तावेज़ों में यह एक सरणी तत्व के रूप में था। किसी भी तरह, सभी मेल खाने वाले दस्तावेज़ लौटा दिए गए।

विभिन्न प्रकारों की तुलना का मूल्यांकन बीएसओएन तुलना क्रम के अनुसार किया जाता है।

एकत्रीकरण उदाहरण

$match . का उपयोग करते समय हम उसी सिंटैक्स का उपयोग कर सकते हैं एकत्रीकरण पाइपलाइन ऑपरेटर।

उदाहरण कोड:

db.products.aggregate(
   [
     { $match: { _id: { $in: [ 1, 2, 3 ] } } }
   ]
)

परिणाम:

{ "_id" : 1, "prod" : "Shorts" }
{ "_id" : 2, "prod" : "Jeans", "sizes" : null }
{ "_id" : 3, "prod" : "Shirt", "sizes" : "L" }

और यहाँ यह फिर से sizes . की क्वेरी करते हुए है फ़ील्ड:

db.products.aggregate(
   [
     { $match: { sizes: { $in: [ "L" ] } } }
   ]
)

परिणाम:

{ "_id" : 3, "prod" : "Shirt", "sizes" : "L" }
{ "_id" : 6, "prod" : "Hat", "sizes" : [ "S", "L", "XL" ] }
{ "_id" : 7, "prod" : "Cap", "sizes" : [ "XS", "S", "M", "L", "XL" ] }

रेगुलर एक्सप्रेशन

आप /pattern/ . फ़ॉर्म का उपयोग करके क्वेरी में रेगुलर एक्सप्रेशन का उपयोग कर सकते हैं ।

उदाहरण:

db.products.find({ 
  sizes: { $in: [ /^X/ ] } 
})

परिणाम:

{ "_id" : 5, "prod" : "Bat", "sizes" : [ "S", "M", "XL", "XXL" ] }
{ "_id" : 6, "prod" : "Hat", "sizes" : [ "S", "L", "XL" ] }
{ "_id" : 7, "prod" : "Cap", "sizes" : [ "XS", "S", "M", "L", "XL" ] }

इस उदाहरण में, मैं sizes . वाले सभी दस्तावेज़ लौटाता हूं एक मान वाला फ़ील्ड जो या तो एक स्ट्रिंग है जो X . से शुरू होता है या एक सरणी जहां कम से कम एक तत्व X . से शुरू होता है ।


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगोडब अद्यतन गहराई से नेस्टेड उप-दस्तावेज़

  2. मैक पर मोंगोडीबी स्थापित करें

  3. मैं एक मोंगोडब खोल क्वेरी में एक ग्रिड का उपयोग कैसे करूं?

  4. MongoDB में एक संग्रह बनाएं

  5. Angular, NodeJS, Express, और MongoDB का उपयोग करके एक ऑनलाइन फ़ूड स्टोर वेबसाइट बनाएं