mongodb - Mongodb 将 $group 缩小到特定 ID
问题描述
有一个如下所示的文档集合:
{
_id: %%ID%%,
category: %%CATEGORY_ID%%
theory: %%THEORY_ID%%
}
我正在尝试计算特定理论的类别数量(一个人可能将理论 A 归类为 AA,而另一个人可能将理论 A 归类为 AB - 这是一般的想法)
{
$group: {
"_id": "$category",
"count": { "$sum": 1 }
}
}
返回:
[
{ _id: 5f47e3be91e24c35c1081c36, count: 1 },
{ _id: 5f47b9341c56712da1d14b9e, count: 2 },
{ _id: 5f47b9821c56712da1d14ba4, count: 1 },
{ _id: 5f47b95e1c56712da1d14ba2, count: 1 },
{ _id: 5f47e44d91e24c35c1081c37, count: 2 },
{ _id: 5f47b94a1c56712da1d14b9f, count: 2 }
]
如何将其缩小到一个特定的理论。我正在尝试运行
$match: {
"theory": %%THEORY_ID_I_WANT_TO_COUNT_FOR%% // or "theory": { $eq: %%THEORY_ID_I_WANT_TO_COUNT_FOR%% }
},
$group: { ... }
但这会导致"Error: Arguments must be aggregate pipeline operators"
解决方案
你用错了,每个管道都必须在一个单独的对象中,试试这个,
{ $match: { "theory": %%THEORY_ID_I_WANT_TO_COUNT_FOR%% } },
{
$group: {
"_id": "$category",
"count": { "$sum": 1 }
}
}
推荐阅读
- c++ - 我的 VSCode 调试器不显示任何变量值(附图片)(c++)
- typescript - 为什么打字稿函数重载会添加未定义的类型?
- php - "code": 403, "message": "Forbidden" 在 youtube api 文档中从 YouTube Analytics API 请求数据时
- python - 如何使用数据提供程序在 python 中读取 excel 文件
- firebase - 我可以在 ReactNative 项目中同时使用 'react-native-firebase' 和 'firebase' 吗?
- python-3.x - 是否可以使用 Python(PyUSB)获取 USB 设备节点(文件)?
- javascript - Javascript错误的计算和舍入数字
- linux - 如何从正在运行的程序的输出中只显示我想要的数据?
- c - 如何在 C 中请求无限的用户输入?
- c# - Unity 中的脚本问题