【发布时间】:2019-09-28 01:15:21
【问题描述】:
如果对象存在于数组中,我正在尝试查询集合中的数组并投影值“true”。如果该对象在数组中不存在,则投影为“false”。我在 MongoDB 中工作,对它不太熟悉。
在我的场景中,我有两个正在使用的集合。我正在聚合一组“员工”成员,并且正在对一组“企业”执行 $lookup 函数。在“业务”中,我拥有一系列业务能力。
比如我有员工收藏
staff = [
...
{_id: 1, businessId: 11},
{_id: 2, businessId: 22},
....
]
企业集合
businesses = [
...
{_id: 11, capabilities: ["claiming", "pushing"]},
{_id: 22, capabilities: ["claiming", "popping"]},
....
]
并且有一个类似的 $lookup 设置
db.getCollection('staff').aggregate([
{
$lookup:
{
from: "businesses",
localField: "businessId",
foreignField: "_id",
as: "business_Info"
}
},
如果“claiming”出现在“capabilities”中,我如何将每个员工的 $project 设置为 $canClaim: true 之类的值?
【问题讨论】:
标签: arrays mongodb mongodb-query aggregation-framework