我有一个列为Column1 & Column2的表,如下所示
Colum1 Column2
A 1
A 2
A 3
B 2
B 4
B 6如果我在MYSQL中执行以下SQL操作
SELECT Column1, Column2, count(*) from Table group by Column1;结果是
Column1 Column2 Count(*)
A 1 3
B 2 3我想对MONGODB执行类似的查询。
我试过了
QUERY1: db.table.aggregate({$group: {_id:"$Column1", count:{$sum:1}} })
QUERY2: db.table.aggregate({$project: {column1:1, column2:1}}, {$group: {_id:"$Column1", count:{$sum:1}} })但是,Query2的结果与Query1相同,似乎无法填充除了$group列中提到的字段之外的其他字段。
是否有方法与$group运算符一起填充mongodb中的其他字段?
发布于 2013-04-05 12:12:29
我不确定我是否正确地阅读了mysql查询,我也不明白为什么这特别有用,但是$first似乎完成了同样的任务。
但是,正如在 documentation中提到的,结果取决于排序,因此您应该包括一个排序标准。
数据(为简洁起见而缩短的列名)
> db.foo.insert({"C1" : "A", "C2" : 1});
> db.foo.insert({"C1" : "A", "C2" : 2});
> db.foo.insert({"C1" : "A", "C2" : 3});
> db.foo.insert({"C1" : "B", "C2" : 2});
> db.foo.insert({"C1" : "B", "C2" : 4});
> db.foo.insert({"C1" : "B", "C2" : 6});聚合查询
> db.foo.aggregate({$group: {_id:"$C1", C2: { $first: "$C2" }, count:{$sum:1}} })结果
{
"result" : [
{
"_id" : "B",
"C2" : 2,
"count" : 3
},
{
"_id" : "A",
"C2" : 1,
"count" : 3
}
],
"ok" : 1
}https://stackoverflow.com/questions/15832426
复制相似问题