Я сейчас в этом сценарии: У меня есть коллекция 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 в выражении агрегации?
ИЗМЕНИТЬ
Этот question связан, но я не отвечаю своей проблеме. (Специально, потому что я не могу использовать ObjectId.toString() во время агрегации)
В действительности я не смог найти какую-либо операцию ObjectId(). toString() в документации Mongo, но мне интересно, есть ли какая-нибудь сложная вещь, которая может быть выполнена в этом случае.