小编Maa*_*eep的帖子

MongoDB:检查对象的数组,如果存在则返回true,否则返回false

我正在尝试查询集合中的数组,如果对象存在于数组中,则投影值“true”。如果对象不存在于数组中,则投影“false”。我在 MongoDB 中工作,我对它不太熟悉。

在我的场景中,我有两个正在使用的集合。我正在聚合一组“员工”成员,并且正在对一组“企业”执行 $lookup 功能。在“业务”中,我拥有一系列业务能力。

例如,我有员工集合

staff = [
  ...
  {_id: 1, businessId: 11},
  {_id: 2, businessId: 22},
  ....
]
Run Code Online (Sandbox Code Playgroud)

企业集合

businesses = [
  ...
  {_id: 11, capabilities: ["claiming", "pushing"]},
  {_id: 22, capabilities: ["claiming", "popping"]},
  ....
]
Run Code Online (Sandbox Code Playgroud)

并有一个 $lookup 设置,如

db.getCollection('staff').aggregate([
    {
        $lookup:
            {
                from: "businesses",
                localField: "businessId",
                foreignField: "_id",
                as: "business_Info"
            }
    },
Run Code Online (Sandbox Code Playgroud)

如果“声称”出现在“能力”中,我如何将每个员工的项目 $project 变成 $canClaim: true 之类的值?

arrays mongodb mongodb-query aggregation-framework

3
推荐指数
1
解决办法
2022
查看次数