私は今このシナリオにいます: コレクション X があります:
{
_id:ObjectId('56edbb4d5f084a51131dd4c6'),
userRef:ObjectId('56edbb4d5f084a51131dd4c6'),
serialNumber:'A123123',
...
}
すべてのドキュメントを集約し、userRef + serialNumber でグループ化する必要があるため、次のように concat を使用しようとしています。
$group: {
_id: {
'$concat': ['$userRef','-','$serialNumber']
},
...
基本的に、MongoDB での集計では、ObjectId と文字列を連結してドキュメントをグループ化する必要があります。ただし、 $concat は文字列のみをパラメーターとして受け入れるようです。
uncaught exception: aggregate failed: {
"errmsg" : "exception: $concat only supports strings, not OID",
"code" : 16702,
"ok" : 0
}
集計式内で ObjectId を String に変換する方法はありますか?
編集:
この質問は関連していますが、解決策は私の問題に適合しません。(特に、集計中に ObjectId.toString() を使用できないため)
実際、Mongo のドキュメントで ObjectId().toString() 操作を見つけることができませんでしたが、この場合に実行できるトリッキーなことはあるのでしょうか。