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

एक ही क्वेरी में बाहरी और भीतरी एम्बेडेड सरणी दोनों की गणना करें

आप $reduce का इस्तेमाल कर सकते हैं और $concatArrays करने के लिए "मर्ज" एक सूची में एक आंतरिक "सरणी की सरणी" और $आकार उसका। फिर बस $add दो परिणाम एक साथ:

db.posts.aggregate([
  { "$match": { _id:ObjectId("5dbdacc28cffef0b94580dbd") } },
  { "$addFields": {
    "totalBoth": {
      "$add": [
        { "$size": "$comments" },
        { "$size": {
          "$reduce": {
            "input": "$comments.replies",
            "initialValue": [],
            "in": {
              "$concatArrays": [ "$$value", "$$this" ] 
            }
          }
        }}
      ]
    }
  }}
])

यह देखते हुए कि "सरणी की सरणी" $comments.replies जैसे व्यंजक का प्रभाव है , इसलिए इन्हें एक एकल सरणी में बनाने का ऑपरेशन जहां आप सभी तत्वों को माप सकते हैं।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. oplog.rs में ts फ़ील्ड पर अनुक्रमणिका अद्यतन नहीं है

  2. नेस्टेड दस्तावेज़ को मैप/घटाएं और क्रमबद्ध करें

  3. जावा का उपयोग करके mongoDB में चित्र कैसे सम्मिलित करें?

  4. Neo4j jdbc का उपयोग करते समय नोड ऑब्जेक्ट कैसे प्राप्त करें?

  5. Mongo-PHP - MongoDB PHP ड्राइवर v1.6 . के साथ MongoCursor अपवाद