有什么方法可以按列对 Mongodb 查询结果进行分组?
Any way to group Mongodb query result by column?
对 Mongodb 很陌生,如果可能的话,我正在尝试使用 Mongoose 构建查询以获得所需的结果。
测试数据:
{ id: 1, display_time: '01:00', name: 'test1' },
{ id: 2, display_time: '03:00', name: 'test2' },
{ id: 3, display_time: '01:00', name: 'test3' },
{ id: 4, display_time: '04:00', name: 'test4' },
{ id: 5, display_time: '01:00', name: 'test5' }
想要的结果:
{
"01:00": [
{ id: 1, display_time: '01:00', name: 'test1' },
{ id: 3, display_time: '01:00', name: 'test3' },
{ id: 5, display_time: '01:00', name: 'test5' }
],
"03:00": [
{ id: 2, display_time: '03:00', name: 'test2' }
],
"04:00": [
{ id: 4, display_time: '04:00', name: 'test4' }
],
}
基本上,它根据 display_time
字段和 returns 以该格式对文档进行分组。 Mongo 这可能吗?
您可以尝试这样的操作:
db.collection.aggregate(
[
{ $group : { _id : "$display_time", test: { $push: "$$ROOT" } } }
]
)
{
"_id" : "01:00",
"test" :
[
{ id: 1, display_time: '01:00', name: 'test1' },
{ id: 3, display_time: '01:00', name: 'test3' }
]
}
{
"_id" : "04:00",
"test" :
[
{ id: 4, display_time: '04:00', name: 'test4' }
]
}
更多信息http://docs.mongodb.org/manual/reference/operator/aggregation/group/
对 Mongodb 很陌生,如果可能的话,我正在尝试使用 Mongoose 构建查询以获得所需的结果。
测试数据:
{ id: 1, display_time: '01:00', name: 'test1' },
{ id: 2, display_time: '03:00', name: 'test2' },
{ id: 3, display_time: '01:00', name: 'test3' },
{ id: 4, display_time: '04:00', name: 'test4' },
{ id: 5, display_time: '01:00', name: 'test5' }
想要的结果:
{
"01:00": [
{ id: 1, display_time: '01:00', name: 'test1' },
{ id: 3, display_time: '01:00', name: 'test3' },
{ id: 5, display_time: '01:00', name: 'test5' }
],
"03:00": [
{ id: 2, display_time: '03:00', name: 'test2' }
],
"04:00": [
{ id: 4, display_time: '04:00', name: 'test4' }
],
}
基本上,它根据 display_time
字段和 returns 以该格式对文档进行分组。 Mongo 这可能吗?
您可以尝试这样的操作:
db.collection.aggregate(
[
{ $group : { _id : "$display_time", test: { $push: "$$ROOT" } } }
]
)
{
"_id" : "01:00",
"test" :
[
{ id: 1, display_time: '01:00', name: 'test1' },
{ id: 3, display_time: '01:00', name: 'test3' }
]
}
{
"_id" : "04:00",
"test" :
[
{ id: 4, display_time: '04:00', name: 'test4' }
]
}
更多信息http://docs.mongodb.org/manual/reference/operator/aggregation/group/