【发布时间】:2018-12-16 19:14:03
【问题描述】:
我有一个包含以下两个相关字段的集合。
{
currentStage: ObjectId("5b06999d889de3bd613ab79d"),
stagePermissions: [
{
"stage" : ObjectId("5b06999d889de3bd613ab79d"),
"_id" : ObjectId("5b3ca6ed676af0e70150a7b9"),
"permissions" : [
"admin"
]
},
{
"stage" : ObjectId("587d33db87969c1b380fb903"),
"_id" : ObjectId("5b3ca6ed676af0e70150a7b8"),
"permissions" : [
"admin"
]
},
]
}
我需要查询的是获取具有“管理员”当前阶段权限的文档。
所以我需要匹配"stagePermissions.permissions": "admin"。但问题是 stagePermissions 对所有阶段都有权限。我只需要将currentStage 与stagePermissions.permissions 匹配即可。
换句话说,我想做的是跟随,因为我没有 currentStage 的 id 作为过滤器,我只有“admin”来过滤。
"stagePermissions.stage": "document's currentStage" AND "stagePermissions": "admin"
预期输出:
在stagePermissions 中将currentStage 权限设置为“admin”的所有文档。
【问题讨论】:
-
上述集合的输出应该是什么?
-
@AnthonyWinzlet 我刚刚更新了我的问题。
-
@AnthonyWinzlet 我需要所有“stagePermissions”,而不仅仅是一个匹配的,我也没有要过滤的 currentStage Id,我需要从正在处理的当前文档中访问它。
-
@AnthonyWinzlet Bascially 我正在尝试获取那些具有“管理员”权限的文档作为其当前阶段的权限。并且所有 stagePermissions 也都存储在同一个文档中。
-
两者。
stagePermissions.stage === currentStage and stagePermissions.permissions === 'admin'
标签: mongodb mongoose aggregation-framework