sql >> Databáze >  >> NoSQL >> MongoDB

Porovnání dvou polí objektů a kontrola, zda mají společné prvky

3.6 Aktualizace:

Použijte $match s $expr . $expr umožňuje použití agregačních výrazů uvnitř $match fázi.

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

Stará verze:

Můžete zkusit $redact s $setIntersection pro váš dotaz.

$setIntersection pro porovnání FirstArray s Name s SecondArray s Name s a vrátí pole běžných názvů dokumentů následované $size a $redact a porovnejte výsledek s 0 ponechat a jinak odebrat dokument.

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



  1. Resque, Resque Server, na RedisToGo s Heroku

  2. MongoDB c# načte všechny odpovídající prvky v poli v dokumentu pomocí Definition Builder

  3. mongo - nelze se připojit k serveru 127.0.0.1:27017

  4. Nakonfigurujte stav relace Redis v Azure