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

Podmíněné vyhledání $ v MongoDB?

Můžete použít níže uvedenou agregaci

$expr umožňuje v něm použít operátor agregace. Můžete tedy snadno použít $cond agregaci pro uživatele, kteří mají allowedRoles a kdo ne

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. Model.findOne nevrací dokumenty, ale vrací objekt wrapper

  2. Jak nainstalovat a nakonfigurovat MongoDB na Ubuntu

  3. Jak napsat více polí podle skupin podle id v ovladači java Mongodb

  4. g++ neumí statické propojení libmongcxx(r3.0.2), ale dynamické propojení funguje