【发布时间】:2020-08-08 22:46:02
【问题描述】:
我有一个 cmets 集合,其中包含两个字段 - “up”和“down”。现在,我只使用其中一个来使用下面的查询来获取计数:
$lookup: {
from: "votesComments",
as: "commentVotes",
let: {
commentI: "$_id"
},
pipeline: [
{
$match: {
$expr: {
$eq: [
"$commentId",
"$$commentI"
]
},
}
},
{
"$group" : {_id:"$up", count:{$sum:1}}
},
]
}
},
结果是:
0: {_id: 1, count: 2} ====> id = 1 is when "up" field has 1. Total up votes is 2
1: {_id: 0, count: 1} ====> id = 0 is when "up" field has 0. Total down votes is 1
这是一个数组。当我放松它时,我只会得到
{_id: 1, count: 2}
我需要执行以下操作之一:
- 以简单的格式获取结果 -
{upvotes: 2, downvotes: 1}或 - 展开结果以包含结果数组的
[0]和[1]元素。 或 - 是否可以在一个查询中执行两个计数? [计算 Up 字段中 1 的数量和 Down 字段中 1 的数量?
【问题讨论】:
-
这能回答你的问题吗? Multiple Counts with single query in mongodb
-
@frozen 不是。我发布了答案,它与您的链接完全不同。
标签: mongodb