MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Membandingkan dua array objek dan memeriksa apakah mereka memiliki elemen yang sama

3.6 Pembaruan:

Gunakan $match dengan $expr . $expr memungkinkan penggunaan ekspresi agregasi di dalam $match panggung.

db.collection.aggregate([
  {"$match":{
    "$expr":{
      "$eq":[
        {"$size":{"$setIntersection":["$FirstArray.Name","$SecondArray.Name"]}},
        0
      ]
    }
  }},
  {"$project":{"_id":1}}
])

Versi lama:

Anda dapat mencoba $redact dengan $setIntersection untuk pertanyaan Anda.

$setIntersection untuk membandingkan FirstArray s Name s dengan SecondArray s Name s dan mengembalikan larik dokumen nama umum diikuti oleh $size dan $redact dan bandingkan hasilnya dengan 0 untuk menyimpan dan menghapus dokumen.

db.collection.aggregate(
  [{
    $redact: {
      $cond: {
        if: {
          $eq: [{
            $size: {
              $setIntersection: ["$FirstArray.Name", "$SecondArray.Name"]
            }
          }, 0]
        },
        then: "$$KEEP",
        else: "$$PRUNE"
      }
    }
  }, {
    $project: {
      _id: 1
    }
  }]
)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Di Piramida, bagaimana cara mengembalikan HTML mentah dari tampilan?

  2. Bagaimana menemukan nscanned di luwak?

  3. Dokumen tersemat dengan asosiasi milik_ke dalam Mongoid

  4. dropDups benar tidak berfungsi mongodb

  5. Mongodb tidak dapat terhubung ke localhost tetapi dapat terhubung ke alamat IP localhost