mongodb - 日期之间的 MongoDB 聚合 $match
问题描述
我正在尝试聚合与查询匹配的文档。我正在使用 Mongoose 和 MongoDB。
let today = new Date();
let start = moment(today).startOf('year').toDate().toISOString();
let end = moment(today).endOf('year').toDate().toISOString();
let event_query = {"$gte" : start, "$lte" : end};
console.log(event_query);
/*
*{ '$gte': '2019-01-01T08:00:00.000Z',
* '$lte': '2020-01-01T07:59:59.999Z' }
*/
let promise = Model.aggregate([
{ $match: {"charged" : true, "createdAt": event_query}},
{ $group: { _id: "$customer", total: { $sum: 1 } } }
]).exec();
我知道这应该匹配文档,因为当我在聚合之外使用此查询时,它会返回预期的文档。此外,如果我删除createdAt
查询,这将返回预期的查询。
为什么我对createdAt
时间戳的日期查询无法匹配聚合管道中的文档?
解决方案
推荐阅读
- websphere - WebSphere Web App 上的后退按钮后文档过期
- google-sheets - 谷歌表格 - 拖动包含公式的 n 行
- python - JupyterHub 无法访问:在 http://8000 上运行
- powershell - 需要针对此脚本在 foreach 中合并多个变量的帮助
- java - 如何使用 Install4J 将 EULA 屏幕添加到我的 MacOS 单一包存档?
- angular - NgbModal - 打开子模态时将结果返回给父级
- swift - 在不知道具体类型的情况下实例化集合
- r - 了解一个简单的网络图
- c# - Offset 变量在这个算法中的重要性是什么?
- regex - 匹配多行正则表达式模式的逆