Python MongoDB分组
我试图计算出按性别分组的平均年龄。预期产出应为Python MongoDB分组,python,mongodb,Python,Mongodb,我试图计算出按性别分组的平均年龄。预期产出应为 {'_id': {'gender': 'M'},{'avg': '27.1}} {'_id': {'gender': 'F'}},{'avg': '29.0}} 下面是我的代码 pipeline = [ { "$project" : { "_id" : {'gender':"$gender"}, "avg": {"$avg":"$age"}, } }
{'_id': {'gender': 'M'},{'avg': '27.1}}
{'_id': {'gender': 'F'}},{'avg': '29.0}}
下面是我的代码
pipeline = [
{
"$project" : {
"_id" : {'gender':"$gender"},
"avg": {"$avg":"$age"},
}
},
{"$group" : {"_id":"$_id"}},
]
for doc in db.user.aggregate(pipeline):
print(doc)
现在的问题是:
{'_id': {'gender': 'M'}}
{'_id': {'gender': 'F'}}
任何帮助都将不胜感激!我知道这可能很简单….以下管道将为您提供每个性别的平均年龄。投影前需要分组
[
{
“$group”:{
“_id”:“$性别”,
“avrg”:{
$avg:“$age”
}
}
},
{
“$project”:{
“性别”:“$\u id”,
“平均值”:“$avrg”,
“\u id”:0
}
}
]
以下是生成上述内容的c#测试程序:
使用MongoDB.Entities;
使用MongoDB.Entities.Core;
使用制度;
使用System.Linq;
命名空间堆栈溢出
{
公共类人员:实体
{
公共字符串名称{get;set;}
公共字符串{get;set;}
公共整数{get;set;}
}
公共课程
{
私有静态void Main(字符串[]args)
{
新数据库(“测试”、“本地主机”);
(新[]{
新人{Name=“one”,Gender=“M”,年龄=30},
新人{Name=“two”,Gender=“M”,年龄=30},
新人{Name=“三”,Gender=“F”,年龄=40},
新人{Name=“four”,Gender=“F”,年龄=40},
}).Save();
var res=DB.Queryable()
.GroupBy(p=>p.Gender)
.选择(g=>new
{
性别=g.键,
平均值=g.平均值(p=>p.年龄)
})
.ToArray();
foreach(在res中的var r)
{
Console.WriteLine($“性别:{r.Gender}平均:{r.avg}”);
}
Console.ReadKey();
}
}
}
请提供样本文件。。