Как преобразовать данные, используя $ if $ else условие mongodb - PullRequest
1 голос
/ 27 апреля 2020

Как преобразовать данные, используя условие $ if $ else MongoDB

mongoPlayground

Когда мы не получаем никаких данных, я хочу настроить объект

record: [
    {
      "text": "No Found",
    }
  ]

Ответы [ 2 ]

0 голосов
/ 28 апреля 2020

Вы можете следовать за кодом

db.project.aggregate([

    {
        $project:{
            title:1,

            "author.middle":{
            $cond:{

                if:{$eq:["","$author.middle"]},
                then:"$$REMOVE",
                else:"$author.middle"
            }

            }
        }
    }

])
0 голосов
/ 28 апреля 2020

Похоже, что ваш запрос пытается сопоставить документы, в которых встроенный массив History.user_id содержит указанное значение c, а поле date больше поля History.date. Вам не нужно $cond'/ $, если for that, you can use $ и `

db.main.aggregate([
  {$lookup: {
      from: "history",
      localField: "history_id",
      foreignField: "_id",
      as: "History"
  }},
  {$unwind: "$History"},
  {"$match": {
      $expr: {
        $and: [
          {$in: [
              "5e4a8d2d3952132a08ae5763",
              "$History.user_id"
          ]},
          {$gt: [
              "$date",
              "$History.date"
          ]}
        ]
      }
    }
  }
])
...