$ или запрос в mongodb - PullRequest
0 голосов
/ 27 августа 2018

Мне нужно найти поле create_date, но если create_date не определено, то найти поле create_time:

Sources_Timings.find({
    create_date: {
        $or: [
            {
                $gte: req.body.date.starting,
                $lte: req.body.date.ending
            },
            {
                $exists: false
            }
        ]
    },
    create_time: {
        $or: [
            {
                $gte: 0,
                $lt: 86400000
            },
            {
                $exists: false
            }
        ]
    }
},
function(err, timings) {
  ...
})

Мой код не работает.

1 Ответ

0 голосов
/ 27 августа 2018

$or - это оператор верхнего уровня, который выполняет операцию с массивом из двух или более выражений и выбирает документы, которые удовлетворяют хотя бы одному выражению.

Итак, ваш запрос должен выглядеть примерно так

Sources_Timings.find({
  "$or": [
    {
      "create_date": {
        "$gte": req.body.date.starting,
        "$lte": req.body.date.ending
      }
    },
    {
      "create_time": {
        "$gte": 0,
        "$lt": 86400000
      }
    }
  ]
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...