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

MongoDB में ऐरे में पोजीशन (इंडेक्स) कैसे प्राप्त करें?

MongoDB में Map-Reduce से ऐरे एलिमेंट का इंडेक्स खोजना

MongoDB में ऐरे के अंदर किसी वैल्यू का पोजीशन (इंडेक्स) खोजने के लिए Map-Reduce फंक्शन का उपयोग कर सकते हैं जिसमें JavaScript का indexOf() मेथड उपयोग होता है।

उदाहरण: डॉक्यूमेंट देखना

> db.retrievePositionDemo.find();
{ "_id" : ObjectId("5cd569ec7924bb85b3f4893f"), "Subjects" : [ "MySQL", "MongoDB", "Java" ] }

डॉक्यूमेंट प्रिटी प्रिंट

> db.retrievePositionDemo.find().pretty();

आउटपुट:

{ "_id" : ObjectId("5cd569ec7924bb85b3f4893f"), "Subjects" : [ "MySQL", "MongoDB", "Java" ] }

"MongoDB" का इंडेक्स खोजना (Map-Reduce)

> db.retrievePositionDemo.mapReduce(
...   function() {
...     emit(this._id, { "IndexValue": this.Subjects.indexOf("MongoDB") });
...   },
...   function() {},
...   {
...     "out": { "inline": 1 },
...     "query": { "Subjects": "MongoDB" }
...   }
... );

आउटपुट:

{ "results" : [ { "_id" : ObjectId("5cd569ec7924bb85b3f4893f"), "value" : { "IndexValue" : 1 } } ], "timeMillis" : 662, "counts" : { "input" : 1, "emit" : 1, "reduce" : 0, "output" : 1 }, "ok" : 1 }

"Java" का इंडेक्स खोजना

> db.retrievePositionDemo.mapReduce(
...   function() {
...     emit(this._id, { "IndexValue": this.Subjects.indexOf("Java") });
...   },
...   function() {},
...   {
...     "out": { "inline": 1 },
...     "query": { "Subjects": "MongoDB" }
...   }
... );

आउटपुट:

{ "results" : [ { "_id" : ObjectId("5cd569ec7924bb85b3f4893f"), "value" : { "IndexValue" : 2 } } ], "timeMillis" : 30, "counts" : { "input" : 1, "emit" : 1, "reduce" : 0, "output" : 1 }, "ok" : 1 }

परिणाम: "MongoDB" इंडेक्स 1 पर है, "Java" इंडेक्स 2 पर (0-बेस्ड इंडेक्सिंग)।

आधुनिक विकल्प (MongoDB 4.4+):

db.retrievePositionDemo.aggregate([
  { $project: { 
    index: { $indexOfArray: ["$Subjects", "MongoDB"] } 
  }}
]);

यह बहुत सरल और तेज है। Map-Reduce केवल पुराने वर्जन्स के लिए उपयोगी है।

  1. - MongoDB में ऐरे सामग्री में अंतर के अनुसार कैसे सॉर्ट करें?

    अंतर के अनुसार सॉर्ट करने के लिए, MongoDB में aggregate() का उपयोग करें। आइए दस्तावेजों के साथ एक संग्रह बनाएं −> db.demo155.insertOne({"Scores":[{"Value":45},{"Value":50}]}); {    "acknowledged" : true,    "insertedId" :

  1. - MongoDB एग्रीगेशन में $slice का उपयोग करके सरणी की लंबाई कैसे प्राप्त करें?

    MongoDB एग्रीगेशन में सरणी की लंबाई (तत्व गणना) प्राप्त करने के लिए, $project चरण में $size ऑपरेटर का उपयोग करें। $slice सरणी का सबसेट निकालता है; लंबाई के लिए $size सही ऑपरेटर है। उदाहरण: विषय सरणी वाला दस्तावेज़ > db.demo382.insertOne({ Name : David, details : [ { SubjectName :

  1. - MongoDB में दस्तावेज़ की संग्रह में सापेक्ष स्थिति प्राप्त करना

    MongoDB में sort() और count() का उपयोग करके दस्तावेज़ की स्थिति ज्ञात करना MongoDB में किसी दस्तावेज़ की सॉर्ट क्रम में सापेक्ष स्थिति (रैंक) ज्ञात करने के लिए, सॉर्ट क्रम लागू करके उन दस्तावेज़ों की गिनती करें जो लक्ष्य दस्तावेज़ से पहले आते हैं। उदाहरण: संग्रह और दस्तावेज़ बनाना > db.demo47.in