javascript - 在 Mongo 中比较日期和时间
问题描述
我正在编写一个 mongo 查询以根据当前时间显示记录。但是,当我尝试查询日期和时间时,查询返回 0 条记录。以下是查询:
let now = momenttz.tz(moment(),tz).toDate();
tmpl.listSelectorFilter('scheduledVisits', {
$gte: now,
$lte: moment.utc(today, 'MM/DD/YYYY').endOf('week').toDate()
});
注意:如果我将时间设置为零小时,它可以工作。
如何更改此查询以使其正常工作?任何帮助表示赞赏。
解决方案
您要查询的数据是否具有要比较的时间戳或 dateTime 对象?本质上,您不会将记录与任何时间进行比较,因此 mongo 无法知道要过滤的内容。
我建议您执行类似 find 的操作,并使用适当的日期字段与记录中的日期进行比较:
例子:
db.collection.find({
{ $and: [ { data.date: { $gte: now } }, { data.date: { $lte: endOfWeek } } ] }
})
还请记住,在 mongo 土地上,您不能像使用 moment 那样使用函数,因此我放置“endOfWeek”,这将是您设置的类似于现在的变量:
let now = momenttz.tz(moment(),tz).toDate();
let endOfWeek = moment.utc(today, 'MM/DD/YYYY').endOf('week').toDate()
推荐阅读
- sql - 遍历一个嵌套的json对象,将键和值插入到两个相关的表中
- javascript - 创建一个函数 toGradePoints(),它将字母等级数组作为输入并返回相应的等级点数组
- java - 如何在 Java 中在 Backendless 上上传图像?
- python - 如何使用python实现for循环?
- javascript - 在 TypeScript 中从数组中过滤对象数组
- python - 对两个数组进行排序以查看它们是否具有相同的值,但它只会发现数组中有 2/3 的值相同
- python - 如何将二维和三维列表合并在一起?
- python - RuntimeError:func返回的数组必须是一维的,但得到ndim=2
- electron - 电子 window.webContents.send 不起作用
- css - 当 flex 项包含输入元素时,不尊重 Flexbox flex-grow 属性