我在mongodb中使用聚合查询来查找集合中存在的所有文档中的属性的总和 .
Query :
db.conversation.aggregate( [
{
$match:{
$and:[{"mailBoxId":"1","isHidden":false}]
}
},
{
$group:
{
_id: {"mailBoxId":"$mailBoxId","isHidden":"$isHidden"} ,
messageCount: { $sum:"$messageCount" }
}
}
]);
Mongodb返回的 result 很好,并且采用这种格式 .
{
"result" : [
{
"_id" : {
"mailBoxId" : "2",
"isHidden" : false
},
"messageCount" : 2
}
],
"ok" : 1
}
我只想要messageCount字段 . 我正在使用MongoTemplate(Spring)类来查询数据库 .
Query retrievalQuery = new Query();
retrievalQuery.addCriteria(Criteria.where("mailBoxId").is(userId).and("isHidden").is(false));
return mongoTemplate.find(retrievalQuery, );
我很困惑如何存储Mongodb返回的结果对象并从中提取特定字段 .
请帮忙 .
2 回答
你试图在mongoTemplate中使用聚合的方式是错误的 . 试试这个我相信它会有所帮助 .
The AggResultObj will be looks like
有关更多信息,您可以查看我的博客,其中我为您的方案创建了相同的示例 . 请点击https://satishkumardangi.blogspot.in/2016/09/using-mongo-db-aggregation-with-spring.html
试试这个