MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Porównanie dwóch tablic obiektów i sprawdzenie, czy mają one wspólne elementy

3.6 Aktualizacja:

Użyj $match z $expr . $expr pozwala na użycie wyrażeń agregacji wewnątrz $match scena.

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

Stara wersja:

Możesz spróbować $redact z $setIntersection dla Twojego zapytania.

$setIntersection aby porównać FirstArray s Name s z SecondArray s Name s i zwróć tablicę dokumentów z nazwami pospolitymi, po których następuje $size i $redact i porównaj wynik z 0 aby zachować lub usunąć dokument.

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. Plik Dropzone nie jest w pełni przetworzony podczas wywoływania processFile(File)

  2. Mongodb nie aktualizuje się, gdy używam tego

  3. Jak zaktualizować tablicę dokumentów podrzędnych w kolekcji MongoDB w MeteorJS?

  4. Wywołanie niezdefiniowanej metody MongoDB\Driver\ReadConcern::isDefault()

  5. po usunięciu dokumentu z ograniczonej kolekcji w mongoDB, wystąpił błąd?