mongodb - 大于 $gt 的简单 $match 不起作用
问题描述
这是聚合查询的结果,
{
"_id" : ObjectId("5dab3240dfbe9a15cd69771d"),
"isManual" : false,
"frequency" : 60,
"lastExecuted" : ISODate("2019-10-21T03:38:15.114Z"),
"lastExecutedTimeFromNow" : 129.58105
}
{
"_id" : ObjectId("5dad47c65310a16581cc6294"),
"isManual" : false,
"frequency" : 50,
"lastExecuted" : ISODate("2019-10-25T00:00:00.000Z"),
"lastExecutedTimeFromNow" : 100
}
{
"_id" : ObjectId("5dad48a55310a16581cc6332"),
"isManual" : true,
"frequency" : 100,
"lastExecuted" : ISODate("2019-10-23T00:00:00.000Z"),
"lastExecutedTimeFromNow" : 50
}
我想过滤字段lastExecutedTimeFromNow
大于frequency
. 但它返回 0 个结果。
这是aggregate
我正在使用的查询,
db.getCollection('test').aggregate([
{
$match: {
"lastExecutedTimeFromNow": { $gte: "$frequency" }
}
}
])
关于我哪里出错的任何线索或对此的任何帮助真的很棒。
解决方案
您可以使用 $expr 但请记住它比正常 $match 慢
db.getCollection('test').aggregate([
{
$match: {
$expr: {
$gte: [
"$lastExecutedTimeFromNow",
"$frequency"
]
}
}
}
])
推荐阅读
- azure - Azure 逻辑应用需要数小时/数天才能运行 Azure Functions
- c# - Xamarin.Forms 问题中的流利设计
- tabulator - 制表符以编程方式更新列位置?
- ionic3 - 我想将 WordPress 网站上的广告集成到我的 ionic 应用程序中,我该怎么做?
- spring-cloud-netflix - 中止通过 Feign 客户端发送的 http 请求
- ionic-framework - 无法将 FileOpener 导入我的 app.module.ts
- excel - 当我有两个条件时宏不起作用
- css - 编译时少循环丢失“)”
- reactjs - this.props.login 不是函数 react-apollo + compose + graphql
- sql - Redshift 中 date_trunc() 返回的奇怪错误