mongodb: использование результатов поиска в качестве критериев фильтрации, не работающей для отметок времени - PullRequest
0 голосов
/ 20 сентября 2019

В приведенном ниже примере я пытаюсь получить документы из коллекции состояний, для которых назначено правило, где текущая дата находится в диапазоне текущего времени.Если я закомментирую условие нижнего соответствия, оно работает.Тем не менее, если я использую критерий соответствия метки времени, он не возвращает никаких результатов.

Как выполнить этот запрос с mongodb?

state = { deferred: true, rule: ObjectId("5d83fd3a176edf9f4242622e") }
rules = { _id: ObjectId("5d83fd3a176edf9f4242622e"), start: 1568916000, end: 1568930400 }


db.state.aggregate([{
  $match: {
            { deferred: { $ne: null} }
        }
  },
  { 
    "$lookup": {
        from: "rules",
        localField: "rule",
        foreignField: "_id",
        as: "rules_current"
    }
  },
  {
     $unwind: "$rules_current"
  },
  {
     $match: {
         $and: [
             { "rules_current.start": { $lt: (new Date().getTime()) } },
             { "rules_current.end": { $gt: (new Date().getTime()) } }
        ]
     }
  }
])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...