【发布时间】:2019-04-15 06:07:47
【问题描述】:
我正在尝试使用 Mongoose/MongoDb 的聚合函数来匹配基于日期的文档。虽然我的聚合函数通过其他过滤器匹配文档,但它根本无法根据日期工作。我在下面分享我的代码。
"$match": {
"createdAt": {"$lt": new Date()}
}
我尝试了各种不同的日期,从存储在我的 mongoDb 数据库中的 ISO 日期开始,但它们似乎都不起作用。我不知道这个问题的原因是什么。虽然我在网上广泛搜索,但我没有找到任何结论性的东西。在 mongoDb shell 上执行的相同查询工作正常,让我相信这可能是 Mongoose 及其投射日期的方式的问题。
这是我用来测试的数据
{
"_id" : ObjectId("5be7fc909625592852d422b4"),
"time" : ISODate("2018-11-11T09:55:28.704Z"),
"receiver" : ObjectId("5be5d727d3f24e06b144e229"),
"createdAt" : ISODate("2018-11-11T09:55:28.718Z"),
"updatedAt" : ISODate("2018-11-11T09:55:28.718Z"),
}
{
"_id" : ObjectId("5be807902b789e5c3c05dc5e"),
"time" : ISODate("2018-11-11T10:42:24.410Z"),
"receiver" : ObjectId("5be5d727d3f24e06b144e229"),
"createdAt" : ISODate("2018-10-09T18:30:00Z"),
"updatedAt" : ISODate("2018-10-09T18:30:00Z"),
}
我被卡住了,不知道如何继续前进。根据我的理解,我已经尝试了所有方法,但似乎没有任何效果。我希望我能在这个问题上得到一些帮助。
非常感谢,谢谢。
【问题讨论】:
-
请提供您的数据样本
-
请检查编辑
-
欢迎来到 SO。请校准“似乎不起作用”。你有错误吗?文件太多?还是没有?
-
我的错。我的意思是“似乎不起作用”是聚合函数没有返回任何文档,即当我针对日期运行查询时没有匹配任何文档。
标签: mongodb date mongoose aggregate iso