Mysql 如何使用group运算符在mongodb中获取投影
我有一个列为Column1和Column2的表,如下所示Mysql 如何使用group运算符在mongodb中获取投影,mysql,sql,mongodb,Mysql,Sql,Mongodb,我有一个列为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
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列中提到的字段之外,您无法填充其他字段
是否有一种方法可以在mongodb中填充其他字段以及$group operator?我不确定我是否正确阅读了mysql查询,我不明白这为什么特别有用,但
$first
似乎完成了同样的任务
但是,如中所述,结果取决于排序,因此应包括排序标准
数据(为简洁起见缩短列名)
聚合查询
> 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
}
文档中有一个例子,我相信这就是您想要的:MySQL查询是正确的,我的基础设施有多台服务器,它们的名称友好,比如Server1、Server2。。。。每个服务器都有多个主机名和多个IP,现在我编写的MySQL查询为我提供了服务器友好的名称、连接到它的IP数量以及访问该服务器的一对IP地址和主机名。谢谢你的回复,我会在Mongo试试这个。谢谢你的帮助。
{
"result" : [
{
"_id" : "B",
"C2" : 2,
"count" : 3
},
{
"_id" : "A",
"C2" : 1,
"count" : 3
}
],
"ok" : 1
}