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

शर्त के साथ MongoDB प्रोजेक्ट ऐरे दस्तावेज़ का आकार

आपके पास कम से कम MongoDB v3.4.4 होना चाहिए

प्रोजेक्टिंग "array.a": 1 वापस आ जाएगा ["A", "A", "A"] .चूंकि आपकी array फ़ील्ड एक सरणी है, हमें $map . का उपयोग करने की आवश्यकता है पुनरावृत्ति के लिए ऑपरेटर।

ऑब्जेक्ट कुंजियों पर पुनरावृति करने के लिए, हमें इसे $objectToArray के साथ सरणी में बदलने की आवश्यकता है ऑपरेटर।

"c": {                   "c": [
    "x": true,             {k: "x", v: true},
    "y": true,       ->    {k: "y", v: true},
    "z": false             {k: "z", v: false},
  }                      ]

फिर, हम $filter . लागू करते हैं ऑपरेटर केवल k:v . प्राप्त करने के लिए जोड़े जिनके v क्या true है ।

db.collection.aggregate([
  {
    $match: {}
  },
  {
    $project: {
      array: {
        $map: {
          input: "$array",
          as: "arr",
          in: {
            a: "$$arr.a",
            b: "$$arr.b",
            c: {
              $size: {
                $filter: {
                  input: {
                    $objectToArray: {
                      $ifNull: [
                        "$$arr.c",
                        {}
                      ]
                    }
                  },
                  cond: {
                    $eq: [
                      "$$this.v",
                      true
                    ]
                  }
                }
              }
            }
          }
        }
      }
    }
  }
])

MongoPlayground




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb - AddToSet का उपयोग करके आइटमों की संख्या

  2. साइडकीक के साथ कई डुप्लिकेट नौकरियों में से केवल एक को निष्पादित करें?

  3. MongoDB डेटाबेस प्रोफाइलर का अवलोकन

  4. उप-दस्तावेज़ फ़ील्ड के लिए स्प्रिंग डेटा मोंगोडब क्वेरी

  5. रूबी ऑन रेल्स में आप मोंगोइड के लिए रिश्तों को कैसे बीजते हैं?