我现在处于这种情况:
{
_id:ObjectId('56edbb4d5f084a51131dd4c6'),
userRef:ObjectId('56edbb4d5f084a51131dd4c6'),
serialNumber:'A123123',
...
}
我需要聚合所有文档,按userRef+serialNumber对它们进行分组,所以我try 使用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转换为字符串?
EDIT:
这question是相关的,但我认为解决方案不适合我的问题.(特别是因为我不能在聚合期间使用ObjectId.toString())
实际上,我找不到任何ObjectId().Mongo文档中的toString()操作,但我想知道在这种情况下是否有什么棘手的事情可以做.