sql >> Databasteknik >  >> NoSQL >> MongoDB

Jämför två objektmatriser och kontrollera om de har gemensamma element

3.6 Uppdatering:

Använd $match med $expr . $expr tillåter användning av aggregeringsuttryck inuti $match skede.

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

Gammal version:

Du kan prova $redact med $setIntersection för din fråga.

$setIntersection för att jämföra FirstArray s Name s med SecondArray s Name s och returnera en rad vanliga namndokument följt av $size och $redact och jämför resultatet med 0 för att behålla och annars ta bort dokumentet.

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



  1. Hur man föredrar läsningar på sekundärer i MongoDb

  2. Hoppa över tidsstämplar mellanprogram för vissa uppdateringar i Mongoose

  3. MongoDB $lte Aggregation Pipeline Operator

  4. Gaffelprocess:Misslyckande vid leverans av hylsan:Trasigt rör