我试图在Java平台上获得所需的结果。 首先,MongoDB的聚合框架对我来说很新颖。所以如果这个问题看起来微不足道,请原谅。但我试图寻找类似的东西,但无济于事。Java + MongoDB:根据特定条件按两个不同列的名称和计数值进行分组
原来的文档结构是这样的:
{
"name" : "WS1",
"previousCount" : 80,
"currentCount" : 70
},
{
"name" : "WS2",
"previousCount" : 42,
"currentCount" : 10
},
{
"name" : "WS2",
"previousCount" : 60,
"currentCount" : 40
},
{
"name" : "WS1",
"previousCount" : 60,
"currentCount" : 20
},
{
"name" : "WS3",
"previousCount" : 50,
"currentCount" : 10
},
{
"name" : "WS3",
"previousCount" : 30,
"currentCount" : 70
},
{
"name" : "WS1",
"previousCount" : 30,
"currentCount" : 30
},
{
"name" : "WS1",
"previousCount" : 80,
"currentCount" : 50
},
我必须通过基于名字的文件第一组,然后涂于previousCount和CURRENTCOUNT领域过滤器和计数出现次数的数量条件满足。
所以,如果我想有不同的记录这意味着次数previousCount为> = 40和< = 70和CURRENTCOUNT是> = 10和< = 50,我应该得到的东西像这样:
因此我终于想类似的结果:
{
"name" : "WS1",
"qualifiedPreviousCount" : 2,
"qualifiedCurrentCount" : 3
},
{
"name" : "WS2",
"qualifiedPreviousCount" : 2,
"qualifiedCurrentCount" : 2
},
{
"name" : "WS3",
"qualifiedPreviousCount" : 1,
"qualifiedCurrentCount" : 1
},
我应该如何进行? MongoDB的聚合框架是我发现难以理解和应用的东西。我非常感谢帮助,因为我长期呆在这里。提前致谢。
首先,你检查出这个链接:HTTPS ://docs.mongodb.com/manual/reference/method/db.collection.aggregate/#examples?其次,如果你正在或打算使用Spring框架 - 那么我建议你看看这个指南mkyong:https://www.mkyong.com/mongodb/spring-data-mongodb-aggregation-grouping-example /。 – Koshux
感谢您的回复。但我不打算使用Spring,并且您链接的手册给出了计算一个字段的示例,并且这是两个字段的同时计数导致了我的问题。对不起,我错过了什么。 – Kunwar