【发布时间】:2018-11-18 05:58:01
【问题描述】:
如标题中所述,我在使用聚合方法从 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" 的 Array 元素并计算它们。这工作得很好,但我不知道如何在 MongoDB Compass 中做同样的事情
在查询栏中,我有“过滤器”、“项目”和“排序”,我可以进行常规查询,但我不知道如何使用聚合方法。 谢谢
【问题讨论】:
-
指南针不支持聚合。使用 mongo shell 作为指南针只是一个“探索者”。
-
如果你不喜欢 mongo shell,那么看看 robomongo.org 。我正在使用 Robo 3T,我发现它对于原型设计/实验非常有用。
-
我也在使用 Studio 3T,它非常好,但我想尝试 Compass,因为它为查询提供了更多统计信息(我正在对 mongoDB 性能进行大学研究)
-
我建议尝试 Compass 1.14(目前是测试版),其中包含一个 Aggregation Pipeline Builder。
-
@Stennie 谢谢!我去看看!
标签: mongodb aggregate mongodb-compass