$group の _id フィールドにカスタム関数を設定することはできますか? ドキュメントはフィールドが計算できることを示しているようですが、私はそれを機能させることができませんでした。
たとえば、1 から 100 までの範囲の数値フィールドを持つ一連のドキュメントがあるとします。数値を複数のバケット (1 ~ 20、21 ~ 40 など) に分類したいと考えています。このバケット識別子を持つフィールド。だから私はこれをやろうとしています:
$group : { _id : bucket("$numberfield") , sum: { $sum: "$otherfield" } }
...ここで、bucket は "1-20" などの文字列を返す関数です。
それはうまくいきませんでした。
http://docs.mongodb.org/manual/reference/operator/aggregation/group/#pipe._S_group
この _id フィールドには、パイプライン内のドキュメントからの 1 つのフィールド、前のステージからの計算値、複数のフィールドで構成されるドキュメント、定数フィールドやサブドキュメント フィールドなどの他の有効な式など、さまざまな式を指定できます。