MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Сравняване на два масива от обекти и проверка дали имат общи елементи

3.6 Актуализация:

Използвайте $match с $expr . $expr позволява използването на агрегиращи изрази вътре в $match етап.

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

Стара версия:

Можете да опитате $redact с $setIntersection за вашето запитване.

$setIntersection за да сравните FirstArray s Name s с SecondArray s Name s и връща масив от общи имена документи, последвани от $size и $redact и сравнете резултата с 0 за да запазите и иначе да премахнете документа.

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. пивоварни услуги. Не може да стартира услугата. Неуспешно получаване на Bootstrap:5:Грешка при въвеждане/извеждане

  2. Клаузата $in на MongoDB има ли максимално ограничение в броя на аргументите

  3. MongoDB:Как да намерите n-тата най-висока заплата от колекцията

  4. Инстанцирането на bean е неуспешно:Посоченият клас е интерфейс

  5. GSSException:Не са предоставени валидни идентификационни данни (ниво на механизма:Неуспешно намиране на Kerberos tgt)