sql >> Database >  >> NoSQL >> MongoDB

Twee objectarrays vergelijken en controleren of ze gemeenschappelijke elementen hebben

3.6 Bijwerken:

Gebruik $match met $expr . $expr staat het gebruik toe van aggregatie-expressies binnen $match podium.

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

Oude versie:

Je kunt $redact proberen met $setIntersection voor uw vraag.

$setIntersection om de FirstArray . te vergelijken s Name s met SecondArray s Name s en retourneert een array van documenten met veelvoorkomende namen gevolgd door $size en $redact en vergelijk het resultaat met 0 om het document te behouden en anders te verwijderen.

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



  1. 3 eenvoudige stappen om MongoDB Sharded-clusters te maken

  2. Queryresultaten sorteren op volgorde van items in de array met verstrekte voorwaarden in Mongoose

  3. MongoDB $gt Aggregation Pipeline Operator

  4. Ingesloten document bijwerken van Mongoose