сравнить дату в mongodb - PullRequest
       18

сравнить дату в mongodb

0 голосов
/ 15 ноября 2018

поэтому у меня есть этот документ в моей коллекции

db.person.insertOne( { name: "vincent", age: 40, alarm: {morning:new Date("2018-11-14T10:00:00Z") , night: new Date("2018-11-14T23:00:00Z")}})

, и мне нужно проверить, есть ли тревога (утренняя или ночная тревога) в следующий час

вот чтоЯ пытался

db.person.find( { "alarm.morning": { $lte: new Date(ISODate().getTime() + 1000 * 60 * 60) , $gte: new Date(ISODate().getTime() - 1000 * 60 * 60)} })

любая помощь, пожалуйста?

1 Ответ

0 голосов
/ 15 ноября 2018

Используйте moment библиотека для простого расчета

const moment = require('moment')

const startDate = moment().toDate()
const endDate = moment().add(1, 'hours').toDate()

db.person.find({ 
  "$or": [
    { "alarm.morning": { "$lte": endDate , "$gte": startDate }},
    { "alarm.night": { "$lte": endDate , "$gte": startDate }}
  ]
})

В оболочке

var startDate = new Date().toISOString()

var today = new Date()
today.setHours(today.getHours() + 1)
var endDate = today.toISOString()

db.person.find({ 
  "$or": [
    { "alarm.morning": { "$lte": endDate , "$gte": startDate }},
    { "alarm.night": { "$lte": endDate , "$gte": startDate }}
  ]
})
...