sql >> Database >  >> NoSQL >> MongoDB

Voorwaardelijk $ opzoeken in MongoDB?

U kunt onderstaande aggregatie gebruiken

$expr stelt u in staat om de aggregatie-operator erin te gebruiken. U kunt dus eenvoudig $cond aggregatie voor de gebruikers die allowedRoles . hebben en wie niet

db.users.aggregate([
  { "$match": { "name": "Charles" }},
  { "$lookup": {
    "from": "roles",
    "let": { "ar": "$allowedRoles" },
    "pipeline": [
      { "$match": {
        "$expr": {
          "$cond": [
            { "$eq": [{ "$type": "$$ar" }, "missing"] },
            {},
            { "$in": ["$_id", "$$ar"] }
          ]
        }
      }}
    ],
    "as": "roles"
  }}
])



  1. Hoe gebruik ik redis' `DUMP` en `RESTORE` (offline)?

  2. MongoDB - Het argument voor $size moet een Array zijn, maar was van het type:EOO / missing

  3. ObjectID slaat geen hexadecimale waarde op

  4. Filterarray met de operator $in in de $project-fase