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

MongoDB के साथ प्रासंगिकता के आधार पर छँटाई

MapReduce और इसे क्लाइंट-साइड करना बहुत धीमा होने वाला है - आपको एग्रीगेशन फ्रेमवर्क (MongoDB 2.2 में नया) का उपयोग करना चाहिए।

यह कुछ इस तरह दिख सकता है:

db.collection.aggregate([
   { $match : { "tags": { "$in": ["bar", "hello"] } } },
   { $unwind : "$tags" },
   { $match : { "tags": { "$in": ["bar", "hello"] } } },
   { $group : { _id: "$title", numRelTags: { $sum:1 } } },
   { $sort : { numRelTags : -1 } }
   //  optionally
   , { $limit : 10 }
])

ध्यान दें कि पहले और तीसरे पाइपलाइन सदस्य समान दिखते हैं, यह जानबूझकर और आवश्यक है। यहां बताया गया है कि चरण क्या करते हैं:

  1. केवल उन्हीं दस्तावेज़ों को पास करें जिनमें "बार" या "हैलो" टैग हो।
  2. टैग सरणी को खोलना (मतलब प्रति टैग तत्व एक दस्तावेज़ में विभाजित करना
  3. केवल "बार" या "हैलो" टैग को पास करें (अर्थात शेष टैग को छोड़ दें)
  4. शीर्षक के आधार पर समूह (यह "$_id" या मूल दस्तावेज़ के किसी अन्य संयोजन द्वारा भी हो सकता है, जिसमें कितने टैग ("बार" और "हैलो") शामिल थे
  5. प्रासंगिक टैग की संख्या के अनुसार अवरोही क्रम में क्रमित करें
  6. (वैकल्पिक रूप से) लौटाए गए सेट को शीर्ष 10 तक सीमित करें।


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. क्लस्टर नियंत्रण के साथ MongoDB 4.0 की निगरानी और संचालन प्रबंधन

  2. सर्वर NodeJS पर Mongo में उपयोगकर्ता (या कस्टम-आधारित भूमिकाएँ) बनाना असंभव है

  3. mongoDB/mongoose के साथ समानांतर निष्पादन में दस्तावेज़ को कैसे पढ़ें/लिखें

  4. MongoError को कैसे ठीक करें:समाप्त हो चुके सत्र का उपयोग नहीं कर सकता

  5. MongoDB डेटाबेस, tbl . से सेलेक्ट कॉलम 1, कॉलम 2 के बराबर है