सबसे पहले, MongoDB में आपका स्वागत है!
याद रखने वाली बात यह है कि MongoDB डेटा स्टोरेज के लिए "NoSQL" अप्रोच को नियोजित करता है, इसलिए अपने दिमाग में सेलेक्ट्स, जॉइन आदि के विचारों को नष्ट कर दें। आपके डेटा को संग्रहीत करने का तरीका दस्तावेज़ों और संग्रहों के रूप में है, जो आपके संग्रहण स्थानों से डेटा जोड़ने और प्राप्त करने के एक गतिशील साधन की अनुमति देता है।
कहा जा रहा है, $ खोल पैरामीटर के पीछे की अवधारणा को समझने के लिए, आपको पहले यह समझना चाहिए कि आप जिस मामले का उपयोग करने की कोशिश कर रहे हैं वह क्या कह रहा है। Mongodb.org से उदाहरण दस्तावेज इस प्रकार है:
{
title : "this is my title" ,
author : "bob" ,
posted : new Date () ,
pageViews : 5 ,
tags : [ "fun" , "good" , "fun" ] ,
comments : [
{ author :"joe" , text : "this is cool" } ,
{ author :"sam" , text : "this is bad" }
],
other : { foo : 5 }
}
ध्यान दें कि टैग वास्तव में 3 आइटमों की एक सरणी है, इस मामले में "मज़ेदार", "अच्छा" और "मज़ेदार" है।
क्या $ खोलना आपको प्रत्येक तत्व के लिए एक दस्तावेज़ को छीलने की अनुमति देता है और परिणामस्वरूप दस्तावेज़ देता है। शास्त्रीय दृष्टिकोण में इस पर विचार करने के लिए, "टैग सरणी में प्रत्येक आइटम के लिए, केवल उस आइटम के साथ एक दस्तावेज़ लौटाया जाना" होगा।
इस प्रकार, निम्नलिखित को चलाने का परिणाम है:
db.article.aggregate(
{ $project : {
author : 1 ,
title : 1 ,
tags : 1
}},
{ $unwind : "$tags" }
);
निम्नलिखित दस्तावेज वापस करेंगे:
{
"result" : [
{
"_id" : ObjectId("4e6e4ef557b77501a49233f6"),
"title" : "this is my title",
"author" : "bob",
"tags" : "fun"
},
{
"_id" : ObjectId("4e6e4ef557b77501a49233f6"),
"title" : "this is my title",
"author" : "bob",
"tags" : "good"
},
{
"_id" : ObjectId("4e6e4ef557b77501a49233f6"),
"title" : "this is my title",
"author" : "bob",
"tags" : "fun"
}
],
"OK" : 1
}
ध्यान दें कि परिणाम सरणी में केवल एक चीज बदल रही है जो टैग मूल्य में वापस आ रही है। यदि आपको यह कैसे काम करता है पर एक अतिरिक्त संदर्भ की आवश्यकता है, तो मैंने यहां एक लिंक शामिल किया है । उम्मीद है कि यह मदद करता है, और सबसे अच्छा NoSQL सिस्टम है कि मैं इस प्रकार अब तक भर में आया है में से एक में अपने भाग्य के साथ शुभकामनाएँ।