Mongodb 如何在pymongo中按特定字段分组输出?
MongoDB中有一个集合 例:- 我想按字段查询文档组的收集和输出:- 示例:-获取Mongodb 如何在pymongo中按特定字段分组输出?,mongodb,mongodb-query,aggregation-framework,pymongo,Mongodb,Mongodb Query,Aggregation Framework,Pymongo,MongoDB中有一个集合 例:- 我想按字段查询文档组的收集和输出:- 示例:-获取字段1为a分组依据field2值的文档 { field1: a, field2: 1, field3: val_1, field4: val_11} { field1: a, field2: 1, field3: val_4, field4: val_44} { field1: a, field2: 1, field3: val_9, field4: val_99} { field1: a, field2:
字段1
为a
分组依据field2
值的文档
{ field1: a, field2: 1, field3: val_1, field4: val_11}
{ field1: a, field2: 1, field3: val_4, field4: val_44}
{ field1: a, field2: 1, field3: val_9, field4: val_99}
{ field1: a, field2: 2, field3: val_2, field4: val_22}
{ field1: a, field2: 2, field3: val_8, field4: val_88}
{ field1: a, field2: 2, field3: val_10, field4: val_1010}
{ field1: a, field2: 5, field3: val_3, field4: val_33}
{ field1: a, field2: 5, field3: val_7, field4: val_77}
{ field1: a, field2: 3, field3: val_5, field4: val_55}
{ field1: a, field2: 3, field3: val_6, field4: val_66}
{ field1: a, field2: 3, field3: val_11, field4: val_1111}
我试图在aggregate
中使用$group
,但无法实现预期的输出
如何实现预期输出。
$match
将筛选出字段1
不等于a
的文档
$group
将对数据进行分组,然后在数据字段中对\u id
和$push
文档中的表达式进行分组
db.collection.aggregate([
{ "$match": { "field1": "a" }},
{ "$group": {
"_id": "$field2",
"data": {
"$push": "$$ROOT"
}
}}
])
@rahulKushwaha更新了我的答案。使用聚合运算符对我来说很困难,您是否也可以按
字段3
对每个组进行排序?MongoDB提供了一个关于聚合框架的完整免费在线培训课程。@JoeDrumgoole您为什么要分享?有什么原因吗?作者说他对聚合框架有困难(“使用聚合操作符对我来说很困难”)。这种免费的训练可以帮助他克服困难。
db.collection.aggregate([
{ "$match": { "field1": "a" }},
{ "$group": {
"_id": "$field2",
"data": {
"$push": "$$ROOT"
}
}}
])