0
私は文書の集まりを持っています。ドキュメントにはそれぞれ、リバース、見積もりなどのさまざまなプロパティがあります。引用番号でグループ化し、グループ内の最新のリビジョンで1つの文書を選択する必要があります。例4はそれぞれ12345とrev A-Dを持つ文書です。 "D"文書とクライアントに最新のrevを送った他のすべての文書が必要です。 私は同様の質問hereを見つけましたが、それは私のために働くことができません。この解決のために@Veeramへ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