問題があります。人々はこのstackoverflowの答えを探して見つけています:
アレイを「再構築」することは決してないので、それは間違っています。
これは、 $ group
を使用して行います。
および $ push
、グループ化しているので、 $ first コード>
必要なドキュメントの他のフィールドの場合:
db.TrafficStatistic.aggregate([
{ "$unwind": "$statistic" },
{ "$sort": { "_id": 1, "statistic.data.desktop.users": 1 } },
{ "$group": {
"_id": "$_id",
"monthStart" : { "$first": "$monthStart" },
"monthEnd" : { "$first": "$monthEnd" },
"date" : { "$first": "$date" },
"statistic": { "$push": "$statistic" }
}}
])
$ sort
にも注意してください。
"_ id"
の両方に適用されます ソートする他のフィールド。これは、並べ替えがドキュメントごとに適用されるためであり、ドキュメントの詳細を $ group
に戻すときに重要です。 。
これで、ドキュメントは以前と同じように見えますが、今回は配列メンバーが並べ替えられています。