mongodb - 比较MongoDB中的日期
问题描述
所以我的收藏中有这份文件
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)} })
有什么帮助吗?
解决方案
使用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 }}
]
})
在 mongoshell
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 }}
]
})
推荐阅读
- gitlab - 如何从 gitlab 运行/调度 testng.xml
- typescript - 如何使用 SVG.js 进行批量 SVG 操作
- swagger-2.0 - @ApiParam 类型不支持字符串以外的其他类型
- azure - 如果我没有添加,Web App 从哪里获取证书?
- java - 使用 SonarQube Scanner 分析 java 代码时出错
- python - Influx DB Python'列表索引必须是整数而不是str'
- pdf - 使用 Ghostscript 从 PDF 转换为 PCL 时重音字的错误字符
- javascript - 实现npm包自定义组件VueJS
- spring-boot - 成功请求后,Mono 获取 OnCancel 而不是 OnSuccessOrError
- ios - 更新 PromiseKit 后出错:无法将“PMKFinalizer”类型的值转换为预期的参数类型“Promise”
'