如何计算 mongodb 中的 $lookup 字段?

2024-01-22

我对 mongodb 很陌生,现在我需要计算 $lookup 字段,这可能吗?

我有这样的事情:

result = await company.aggregate([
  {
    $lookup: {
      from: 'userFocus',
      localField: '_id',
      foreignField: 'value',
      as: 'focusUsers'
    }
  },
  {
    $project:{
      name: 1,
      focusUsers: {userId: 1}
    }
  }
])

结果如下:

[
  {_id: 'xxxx', name: 'first company', focusUsers: [user1, user2, user3...]},
  {_id: 'yyyy', name: 'second company', focusUsers: []},
  {_id: 'zzzz', name: 'third company', focusUsers: []}
]

现在我想要一个额外的列显示 focusUsers 计数,换句话说,我想要如下结果:

[
  {_id: 'xxxx', name: 'first company', focusUsers: [user1, user2, user3], focusCount: 3},
  {_id: 'yyyy', name: 'second company', focusUsers: [], focusCount: 0},
  {_id: 'zzzz', name: 'third company', focusUsers: [], focusCount: 0}
]

是否可以?怎么做?请各位专家指教,先谢谢了!


您可以使用$size https://docs.mongodb.com/manual/reference/operator/query/size/聚合运算符用于查找数组的长度。

company.aggregate([
  { "$lookup": {
    "from": "userFocus",
    "localField": "_id",
    "foreignField": "value",
    "as": "focusUsers"
  }},
  { "$project": {
    "name": 1,
    "focusUsers": 1,
    "focusCount": { "$size": "$focusUsers" }
  }}
])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何计算 mongodb 中的 $lookup 字段? 的相关文章

随机推荐