集約フレームワークを使用して、多くの文字列をグループ化し、一意のものを識別しようとしています。残りのフィールドに関する情報も保持する必要があります。これは、mysql で group by ステートメントで * 演算子を使用することに似ています。
SELECT *
FROM my_table
GROUP BY field1
集計フレームワークを使用してみましたが、一意のフィールドを取得するだけでうまく機能します。
db.mycollection.aggregate({
$group : { _id : "$field1"}
})
それに付随する他のフィールドが必要な場合はどうなりますか。MySQL は、グループに最初に表示されたもののみを提供します (これで問題ありません)。それが $first 演算子が行ったと私が思ったことです。
db.mycollection.aggregate({
$group : {
_id : "$field1",
another_field : {$first : "$field2"}
}})
このように、field1 でグループ化しますが、ドキュメントに添付された他のフィールドも表示されます。これを試すと、次のようになります。
exception: aggregation result exceeds maximum document size (16MB)
私が感じているのは、集計全体を 1 つのドキュメントとして返すためです。別のjson配列として返すことはできますか?
前もって感謝します