【发布时间】:2022-12-12 07:22:34
【问题描述】:
我想通过聚合多个 ObjectID 之一来过滤我的集合。
由于某些 DocumentDB 限制,我无法构建具有不相关子查询的单个管道。所以我的解决方法是在两个查询中完成。
例如:我有一个返回所有 teamIds 的聚合,在某些情况下作为带有 ID 的对象数组。
[{_id: ObjectID("abcdef")}, {_id: ObjectID("ghijkl")}, {_id: ObjectID("vwxyz")}, ...]
我现在想要使用 ObjectID 对另一个集合进行第二个聚合过滤。
这适用于 Mongo Compass:
{
"team": {
"$in": [ObjectId("60aabcb05c7462f42b3d7zyx"), ObjectId("60aabc7b05c7462f42b3dxyz")]
},
....
}
我的问题是我找不到 JS 生成这种管道的正确语法。 无论我尝试什么,JS 总是将我的 ObjectID 数组转换为如下所示:
{
"team": {
"$in": [{
"_id": "60aabcb05c7462f42b3d7zyx"
},{
"_id": "60aabc7b05c7462f42b3dxyz"
}]
},
【问题讨论】:
标签: mongodb mongoose aggregation-framework aws-documentdb