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

क्या मोंगो में एक स्लाइस का टुकड़ा प्राप्त करना संभव है?

$slice . प्राप्त करने के लिए आपको एकत्रीकरण पाइपलाइन का उपयोग करने की आवश्यकता है चेन, प्रोजेक्ट स्टेटमेंट की सीमाओं के कारण खोज क्वेरी का हिस्सा है।

नीचे दी गई क्वेरी अमान्य है क्योंकि पहला $slice एक अनुक्रमणिका के बजाय एक सरणी लौटाएगा, और बाहरी दायरे का निष्पादन $slice विफल रहता है।

db.collection.find({"name":"foo"},{text: {$slice:[{$slice: [1,1]}]}})

इसके अलावा एक ही प्रोजेक्ट स्टेटमेंट में प्रोजेक्टेड फील्ड पर काम करने का कोई तरीका नहीं है, यदि संभव हो तो हम टेक्स्ट को $स्लाइस लगाकर और संशोधित कर सकते थे।

जाने का रास्ता होगा:

  • Match फू नाम के साथ रिकॉर्ड।
  • Unwind प्रथम स्तर तक पहुंचने के लिए टेक्स्ट सरणी।
  • Unwind फिर से उस स्तर तक पहुंचने के लिए जो हम चाहते हैं।
  • Group नाम से एक साथ रिकॉर्ड।
  • Project समूह में अंतिम रिकॉर्ड जो अंतिम नेस्टेड सरणी का अंतिम तत्व भी है।

कोड:

db.collection.aggregate([
{$match:{"name":"foo"}},
{$unwind:"$text"},
{$unwind:"$text"},
{$group:{"_id":"$name","text":{$last:"$text"}}},
{$project:{"name":"$_id","text":1}}
])

या यदि आप किसी विशेष क्रम में प्रदर्शित होने वाले तत्व को प्रोजेक्ट करना चाहते हैं, तो आप $skip का उपयोग कर सकते हैं और $limit इसे प्राप्त करने के लिए संचालन।

var orderOfElement = 2;
db.collection.aggregate([
{$match:{"name":"foo"}},
{$unwind:"$text"},
{$unwind:"$text"},
{$skip:orderOfElement -1},
{$limit:1}
])

नेस्टेड सरणियों में क्रम में दूसरा तत्व कौन सा प्रोजेक्ट करता है।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. डेटाबेस अपडेट और सुरक्षा पैच को आसानी से कैसे प्रबंधित करें

  2. MongoDB डेटाबेस एन्क्रिप्शन

  3. सी # का उपयोग कर मोंगोडीबी में प्रक्षेपण परिभाषा को कैसे नियंत्रित करें

  4. MongoCollection बनाम DBCollection java

  5. MongoDb jndi . के माध्यम से