0
我有一個文檔集合。每份文件都有一個修訂版,報價和各種其他屬性。我需要根據報價編號進行分組,然後選擇組中最新版本的單個文檔。示例4文件中的每一個都帶有引號12345和A-D,我需要「D」文件和所有其他文件以及最新的轉發給客戶。 我發現了一個類似的問題here,但不能讓它爲我工作。MongoDb:分組然後排序並取最後一個文檔
查詢
db.myCollection.aggregate([
{ "$group": {
"_id": "$quote",
"rev": { "$first":"$rev"}
}
])
收集
{
"_id" : ObjectId("58b6054c17c2cd53cf4176fe"),
"rev" : "A",
"quote" : "12345",
},
{
"_id" : ObjectId("58b6085617c2cd53cf417710"),
"rev" : "B",
"quote" : "12345",
},
{
"_id" : ObjectId("58b6da4617c2cd53cf417728"),
"rev" : "C",
"quote" : "12345",
},
{
"_id" : ObjectId("58b6e5c317c2cd53cf417744"),
"rev" : "D",
"quote" : "12345",
},
{
"_id" : ObjectId("58b6f44917c2cd53cf41776e"),
"rev" : "A",
"quote" : "54321",
},
{
"_id" : ObjectId("58b6ffcb17c2cd53cf417788"),
"rev" : "B",
"quote" : "54321",
}
您是否嘗試添加類似提到的其他答案?類似於'db.myCollection.aggregate([{「$ sort」:{「quote」:1,「rev」:1}}, {「$ group」:{ 「_id」:「$ quote」, 「rev」:{「$ last」:「$ rev」} } ]' – Veeram
@Veeram確實返回了數據,但它只是_id和rev屬性。我如何獲取整個文檔? –
嘗試'db.myCollection.aggregate([{「$ sort」:{「quote」:1,「rev」:1}},{「$ group」:{「_id」:「$ quote」,「data」 :{「$ last」:「$$ ROOT」}}])' – Veeram