mongodb - mongodb - 日期比较在聚合中不起作用
问题描述
我有以下聚合:
db.runCommand(
{"aggregate":"Order","pipeline":[
{"$match":{"shopId":28440395907}},
{"$match":{"createdAt":{"$gte":{"$date":{"$numberLong":"0"}}}}},
{"$sort":{"updatedAt":-1}},
{"$facet":{"results":[{"$skip":0},{"$limit":25}],"count":[{"$count":"count"}]}}
],"allowDiskUse":true,"cursor":{}}
);
问题是它无法返回任何结果。用其他任何东西替换日期过滤器会提供结果,所以我的猜测是日期转换存在问题。我尝试了在教程中找到的所有版本(例如 new Date("2015-06-17 10:03:46.000Z")),它的作用始终相同。谁能解释一下为什么以及如何解决?
解决方案
日期格式错误,使用符合 ISO-8601 的格式:
new Date("2015-06-17T10:03:46Z")
或者
ISODate("2015-06-17T10:03:46Z")
ISODate()
是new Date()
您在 mongo shell 中的别名。
2015-06-17 10:03:46Z
如果您想指定某一天的时间,格式是常用的,但不符合 ISO-8601 标准。
推荐阅读
- drools - 从 drools 的 drl 文件调用决策表
- android-studio - Android Studio 未卸载
- html - HTML 背景附件:已修复。滚动后背景被掩盖
- javascript - 如何在页面中的一个类中查找两个开括号和闭括号之间的字符串并将 Enitre 包裹起来
- keras - 带有 LSTM 的 Keras 嵌入层
- visual-studio-2015 - 提取时遇到错误:不支持的 URL 协议
- hive - Hive中explode()和侧视图explode()有什么区别
- vue.js - vue.js 过滤器做任何嵌套方法不能做的事情吗?
- r - 在 R 中运行 h2o.deeplearning 算法时出错
- sql - SQL-计算非 NULL 值并计算具有字符串“1”的行