kam*_*rba 2 mongodb mongodb-query aggregation-framework
我有对象集合,其中每个对象都包含版本,其中一些版本具有删除字段,并希望过滤这些未删除或晚于给定时间戳的对象。
db
.getCollection('test')
.aggregate([
{$project:
{versions:
{$filter:
{input: '$versions',
as: 'version',
cond:
{
$or: [
{$gte: ['$$version.delete', 3]},
{'$$version.delete': {$exists: false}}
]
}
}
}
}
}
])
Run Code Online (Sandbox Code Playgroud)
但字段名称可能无法在过滤器中使用,因为我收到一个错误:invalid operator '$$version.delete'
任何想法这个查询的正确语法是什么?
你想使用聚合语法检查销毁字段类型,比较它missing是什么$exists:false将是:
{$eq:[{$type:'$$version.delete'},"missing"]}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1056 次 |
| 最近记录: |