我有对象集合,其中每个对象都包含版本,其中一些版本具有删除字段,并希望过滤这些未删除或晚于给定时间戳的对象。
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'
任何想法这个查询的正确语法是什么?