如标题所述,我在使用聚合方法从 MongoDB Compass 查询时遇到一些问题。我有一个这种形式的文档集合:
{"Array":[{"field":"val","field2":"val2"},{"field":"val","field2":"val2"},{"field":"val","field2":"val2"},{"field":"val","field2":"val2"},{"field":"val","field2":"val2"},...]}
使用mongo shell或Studio 3T软件我用聚合方法查询它,如下示例:
db.collection.aggregate([
{ $match: {"Array.field": "val"}},
{ $unwind: "$Array"},
{ $match: {"Array.field": "val"}},
{ $group: {_id: null, count: {$sum:NumberInt(1)}, Array: {$push: "$Array"}}},
{ $project: {"N. Hits": "$count", Array:1}}
])
我在其中查找具有字段值=“val”的数组元素并对它们进行计数。这工作得很好,但我不知道如何在 MongoDB Compass 中做同样的事情
在查询栏中,我有“过滤器”、“项目”和“排序”,我可以进行常规查询,但我不知道如何使用聚合方法。 谢谢
db.questions.aggregate([
{ $match: { language: "java" } },
{ $count: "total_count" },
]);
这是计数操作聚合函数的简单示例。在这里,“questions”是我的集合名称,您可以将其替换为数据库中的实际集合名称。
“match”子句设置聚合的标准。在这种情况下,
{language:"java"}
过滤“语言”字段等于“java”的文档。
输出为: 在此输入图片描述