集計 オペレーションはデータレコードを処理し、計算結果を返します。集計操作は、複数のドキュメントの値をグループ化し、グループ化されたデータに対してさまざまな操作を実行して、単一の結果を返すことができます。
これを試してください-
collection.aggregate([
{ $unwind: "$items" },
{ $sort: { "items.order": 1 } },
{ $group: { _id: "$_id", items: { $push: "$items" } } }
]);
次の集計では、$ unwindステージを使用して、sizes配列の各要素のドキュメントを出力します。
Pipeline $ sort(aggregation)ステージ:- すべての入力ドキュメントを並べ替えて、並べ替えられた順序でパイプラインに返します。
$ sortステージには、次のプロトタイプ形式があります。
{ $sort: { <field1>: <sort order>, <field2>: <sort order> ... } }
パイプライン$group(集計)ステージ:- 特定の式でドキュメントをグループ化し、個別のグループ化ごとにドキュメントを次のステージに出力します。出力ドキュメントには、キーごとの個別のグループを含む_idフィールドが含まれています。 $groupはその出力ドキュメントを注文しません。
$ groupステージには、次のプロトタイプ形式があります。
{ $group: { _id: <expression>, <field1>: { <accumulator1> :
<expression1> }, ... } }
詳細については、このリンクを参照してください- https://docs.mongodb .com / manual / reference / method / db.collection.aggregate /