我现在处于这种情况:我有一个集合 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() 操作,但我想知道在这种情况下是否可以做任何棘手的事情。