Mongodb将$group缩小到特定ID

Mongodb将$group缩小到特定ID,mongodb,mongoose,Mongodb,Mongoose,有一个如下所示的文档集合: { _id: %%ID%%, category: %%CATEGORY_ID%% theory: %%THEORY_ID%% } 我试图计算特定理论的类别数量(一个人可能会将理论A归类为AA,另一个人可能会将理论A归类为AB——这是总体思路) 返回: [ { _id: 5f47e3be91e24c35c1081c36, count: 1 }, { _id: 5f47b9341c56712da1d14b9e, count: 2 }, {

有一个如下所示的文档集合:

{
   _id: %%ID%%,
   category: %%CATEGORY_ID%%
   theory: %%THEORY_ID%%
}
我试图计算特定理论的类别数量(一个人可能会将理论A归类为AA,另一个人可能会将理论A归类为AB——这是总体思路)

返回:

[
  { _id: 5f47e3be91e24c35c1081c36, count: 1 },
  { _id: 5f47b9341c56712da1d14b9e, count: 2 },
  { _id: 5f47b9821c56712da1d14ba4, count: 1 },
  { _id: 5f47b95e1c56712da1d14ba2, count: 1 },
  { _id: 5f47e44d91e24c35c1081c37, count: 2 },
  { _id: 5f47b94a1c56712da1d14b9f, count: 2 }
]
如何将其缩小到一个特定的理论。我正试着像你一样运行smth

$match: { 
    "theory": %%THEORY_ID_I_WANT_TO_COUNT_FOR%% // or "theory": { $eq: %%THEORY_ID_I_WANT_TO_COUNT_FOR%% }
},
$group: { ... }

但它会导致“错误:参数必须是聚合管道运算符”

如果使用方法错误,每个管道必须位于单独的对象中,请尝试以下操作

  { $match: { "theory": %%THEORY_ID_I_WANT_TO_COUNT_FOR%% } },
  {
    $group: {
      "_id": "$category",
      "count": { "$sum": 1 }
    }
  }

不会
db.collection.aggregate([{$match:{“theory”:%%theory\u ID\u I\u想为%%}计数,{$group:{“\u ID”:“$category”,“COUNT”:{$sum:1}}])
工作?你可能键入了错误的内容。添加使用有效语法发送的完整查询(%%不是)。
  { $match: { "theory": %%THEORY_ID_I_WANT_TO_COUNT_FOR%% } },
  {
    $group: {
      "_id": "$category",
      "count": { "$sum": 1 }
    }
  }