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

कैसे जांचें कि कोई सरणी फ़ील्ड MongoDB में किसी अन्य सरणी का हिस्सा है या नहीं?

ऐसा करने के लिए आप एकत्रीकरण ढांचे का उपयोग कर सकते हैं। निम्नलिखित डेटा को देखते हुए

> db.post.find()
{ "_id" : 1, "tags" : [ "tag1" ] }
{ "_id" : 2, "tags" : [ "tag1", "tag3" ] }
{ "_id" : 3, "tags" : [ "tag2", "tag4" ] }
{ "_id" : 4, "tags" : [ "tag1", "tag2", "tag3", "tag4" ] }

एकत्रीकरण क्वेरी

db.post.aggregate({
  $project: {
    _id: 1,
    tags: 1,
    killFlag: {
      $const: [true, false]
    }
  }
}, {
  $unwind: "$tags"
}, {
  $unwind: "$killFlag"
}, {
  $match: {
    $nor: [{
        tags: {
          $in: ['tag1', 'tag2', 'tag4']
        },
        killFlag: true
      }
    ]
  }
}, {
  $group: {
    _id: "$_id",
    tags: {
      $addToSet: "$tags"
    },
    killFlag: {
      $max: "$killFlag"
    }
  }
}, {
  $match: {
    killFlag: false
  }
}, {
  $project: {
    _id: 1,
    tags: 1
  }
})

आपको देगा

{
  "result": [{
      "_id": 3,
      "tags": [
          "tag4",
          "tag2"
      ]
    }, {
      "_id": 1,
      "tags": [
          "tag1"
      ]
    }
  ],
  "ok": 1
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगोडीबी $mod

  2. संस्करण त्रुटि:Node.js/Mongoose पर कोई मिलान करने वाला दस्तावेज़ त्रुटि नहीं मिला

  3. 2dsphere अनुक्रमित फ़ील्ड पर नेवला के पास (...) क्वेरी मान्य परिणाम नहीं लौटा रही है

  4. ClusterControl के साथ भूमिका-आधारित अभिगम नियंत्रण लागू करना

  5. मोंगोडब प्रकार सरणी में बदल जाता है