【发布时间】:2019-08-08 22:44:48
【问题描述】:
我在 MongoDB 中有一组数据对象-
[
{ "status" : "passed", "version" : "124" , "value" : 6 },
{ "status" : "passed", "version" : "123" , "value" : 10 },
{ "status" : "failed", "version" : "123" , "value" : 16 }
]
我想以类似的格式获取它 -
[
{
version: 124,
"series" :[
{
"name" : "passed",
"value" : 6
}
]
},
{
version: 123,
"series" : [
{
"name" : "passed",
"value" : 10
},
{
"name" : "failed",
"value" : 16
}
]
}
]
我应该如何编写查询? 我写了像
这样的查询我写了这样的查询:
Aggregation.group("version").push(new BasicDBObject("name","$status").append("value", "$value")).as("series");
使用上面的聚合查询,我得到这样的结果:
[
{
version: 124,
"series" :[
{
"name" : null,
"value" : 6
}
]
},
{
version: 123,
"series" : [
{
"name" : null,
"value" : 10
},
{
"name" : null,
"value" : 16
}
]
}
]
对象中好像没有取status的值。我该如何解决这个问题?
【问题讨论】:
-
我也在做同样的事情,对我来说效果很好。你用的spring-data-mongodb是什么版本的?
标签: mongodb spring-boot aggregation