gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 09:28:41 32 4
gpt4 key购买 nike

我是 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用于查找数组长度的聚合运算符。

company.aggregate([
{ "$lookup": {
"from": "userFocus",
"localField": "_id",
"foreignField": "value",
"as": "focusUsers"
}},
{ "$project": {
"name": 1,
"focusUsers": 1,
"focusCount": { "$size": "$focusUsers" }
}}
])

关于mongodb - 如何计算 mongodb 中的 $lookup 字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52404330/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com