Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MongoDB

MongoDB में $elemMatch के बिना सरणी में सटीक मिलान कैसे करें?

MongoDB में सरणी का सटीक मिलान (क्रम और मान दोनों) करने के लिए $eq ऑपरेटर का उपयोग करें। यह $elemMatch का विकल्प है।

उदाहरण

विभिन्न सरणी वाले दस्तावेज़ बनाएं:

> db.equalDemo.insertOne({_id: 1, "StudentFriendNames": ["John", "Carol", "Sam"]});
{ "acknowledged" : true, "insertedId" : 1 }
> db.equalDemo.insertOne({_id: 2, "StudentFriendNames": null});
{ "acknowledged" : true, "insertedId" : 2 }
> db.equalDemo.insertOne({_id: 3, "StudentFriendNames": ["Carol"]});
{ "acknowledged" : true, "insertedId" : 3 }
> db.equalDemo.insertOne({_id: 4, "StudentFriendNames": ["Sam"]});
{ "acknowledged" : true, "insertedId" : 4 }

दस्तावेज़ देखें:

> db.equalDemo.find();
{ "_id" : 1, "StudentFriendNames" : [ "John", "Carol", "Sam" ] }
{ "_id" : 2, "StudentFriendNames" : null }
{ "_id" : 3, "StudentFriendNames" : [ "Carol" ] }
{ "_id" : 4, "StudentFriendNames" : [ "Sam" ] }

सटीक सरणी ["Carol"] वाले दस्तावेज़ ढूंढें

> db.equalDemo.find({"StudentFriendNames": {$eq: ["Carol"]}});

आउटपुट:

{ "_id" : 3, "StudentFriendNames" : [ "Carol" ] }

व्याख्या:

  • $eq: ["Carol"] - सरणी का सटीक मिलान: ठीक एक तत्व "Carol"
  • क्रम, लंबाई, और मान सभी समान होने चाहिए
  • पहला दस्तावेज़ (["John", "Carol", "Sam"]) मेल नहीं खाता - लंबाई अलग
  • Null सरणी मेल नहीं खाती

$eq vs डॉट नोटेशन

क्वेरीव्यवहार
{arr: {$eq: ["a", "b"]}}सटीक सरणी मिलान: ["a", "b"] क्रम में
{arr: "a"}सरणी में "a" मौजूद है (कोई भी स्थिति)
{arr.0: "a"}पहला तत्व "a" है
{arr: {$elemMatch: {$eq: "a"}}}सरणी में "a" मौजूद है (समान)

उपयोग: सटीक सरणी मिलान के लिए $eq उपयोगी है। आंशिक मिलान के लिए डॉट नोटेशन या $elemMatch बेहतर है।

  1. - C++ प्रोग्राम: सशर्त ऑपरेटर के बिना सरणी से सबसे बड़ा तत्व ज्ञात करना

    मान लें हमारे पास कुछ तत्वों के साथ एक सरणी A है। हमें सरणी A में सबसे बड़ा तत्व ज्ञात करना है, लेकिन प्रतिबंध यह है कि हम किसी भी सशर्त ऑपरेटर का उपयोग नहीं कर सकते। इसलिए यदि A = [12, 63, 32, 24, 78, 56, 20], तो अधिकतम तत्व 78 होगा। इस समस्या को हल करने के लिए, हम बिटवाइज AND ऑपरेशन का उपयोग करें

  1. - C++ में सरणी में एक संख्या की फ्रीक्वेंसी ज्ञात करना

    मान लीजिए हमारे पास एक सरणी है। इसमें n अलग-अलग तत्व हैं। हमें सरणी में एक तत्व की फ्रीक्वेंसी जांचनी है। मान लीजिए A = [5, 12, 26, 5, 3, 4, 15, 5, 8, 4], यदि हम 5 की फ्रीक्वेंसी ढूंढने की कोशिश करते हैं, तो यह 3 होगी। इसे हल करने के लिए, हम सरणी को बाएं से स्कैन करेंगे, यदि तत्व दी गई संख्या के सम

  1. - C# में sizeof का उपयोग किए बिना वेरिएबल का आकार कैसे ढूंढें

    वेरिएबल का आकार प्राप्त करने के लिए, sizeof का उपयोग किया जाता है। int x; x = sizeof(int); वेरिएबल का आकार प्राप्त करने के लिए, sizeof का उपयोग किए बिना, निम्नलिखित कोड आज़माएं: // sizeof का उपयोग किए बिना byte[] dataBytes = BitConverter.GetBytes(x); int d = dataBytes.Length; यहां पूरा कोड है। उदाह