आप किसी सरणी में स्थिति प्राप्त करने के लिए मानचित्र कम करने की अवधारणा का उपयोग कर सकते हैं। आइए पहले दस्तावेजों के साथ एक संग्रह बनाएं -
> db.retrievePositionDemo.find();
{ "_id" : ObjectId("5cd569ec7924bb85b3f4893f"), "Subjects" : [ "MySQL", "MongoDB", "Java" ] } खोज () विधि की मदद से संग्रह से सभी दस्तावेजों को प्रदर्शित करने के लिए क्वेरी निम्नलिखित है -
> db.retrievePositionDemo.find().pretty();
यह निम्नलिखित आउटपुट उत्पन्न करेगा -
{
"_id" : ObjectId("5cd569ec7924bb85b3f4893f"),
"Subjects" : [
"MySQL",
"MongoDB",
"Java"
]
} MongoDB में एक सरणी में स्थिति को पुनः प्राप्त करने के लिए क्वेरी निम्नलिखित है -
> 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
} उपरोक्त नमूना आउटपुट को देखें, "MongoDB" मान का सूचकांक या स्थिति 1 है। आप "जावा" मान की जांच कर सकते हैं, जो स्थिति 2 पर है -
> 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
}