我試圖在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