MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Условно $търсене в MongoDB?

Можете да използвате агрегирането по-долу

$expr ви позволява да използвате оператор за агрегиране вътре в него. Така че можете лесно да използвате $cond агрегиране за потребителите, които имат allowedRoles и кой не е

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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bash shell скриптът не се свързва с MongoDB, дори ако състоянието е активно

  2. Как да се справя с произволен хеш, върнат от mongo в go (с помощта на mgo)?

  3. Срез от хранилище на Spring Mongo

  4. MongoDB $mul

  5. Какво да знаете, когато започнете да работите с MongoDB в производството - десет съвета