Mongodb $ cond с поиском - PullRequest
       11

Mongodb $ cond с поиском

2 голосов
/ 30 апреля 2019

Это пример документа заказа, который у меня есть

{numberOfHours: 10, status: “BOOKED”, hidden: true},
{numberOfHours: 5, status: “NOT_BOOKED”,hidden: true},
{numberOfHours: 1, status: “BOOKED”, hidden: true},
{numberOfHours: 10, status: “PENDING”, hidden: true}

Это мое требование.Я хочу найти все, что не hidden(hidden = false).Но если статус “BOOKED”, он должен отображаться, даже если hidden равен true.Мне придется использовать также collection.find()

Это мой запрос -

{  $expr: {
       $eq:[ {
          $cond: {
             if: { "$status" : { $ne: "BOOKED"} },
             then: {"$hidden"},
             else: {null}
           }
       },
       false ] }
}

Как действовать дальше?Любая помощь будет высоко оценена.

Ответы [ 2 ]

2 голосов
/ 30 апреля 2019

Вы можете просто использовать $ или для выражения обоих условий:

{  $expr: {
       $or: [ { $eq: [ "$status", "BOOKED" ] }, { $eq: [ "$hidden", false ] } ]
}

(если статус отличается от BOOKED, то проверяется, установлено ли для скрытого значение false)

1 голос
/ 30 апреля 2019
{$expr: {
    {$cond: {
        "if": {"$eq": ["$status", "BOOKED"]},
        "then": {"$hidden"},
        "else": {null}
      }
    },false}
}

Примечание: - Я дал ответ на основании вашего вопроса.Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...