Я пытаюсь преобразовать шестнадцатеричную строку в ее эквивалентный ObjectID в запросе агрегирования. Я пробовал два разных метода:
db.omvas.aggregate([
{$project:{
EID:{$let: {
vars: {
id: "$EID"
},
in: ObjectId("$$id")
}},
}
},
{$group:{
_id:"$EID"
}
}
]);
и
db.omvas.aggregate([
{$project:{
EID: ObjectId("$EID")
}
},
{$group:{
_id:"$EID"
}
}
]);
Я продолжаю получать ошибку "Ошибка: недопустимый идентификатор объекта: длина" с помощью любого метода. Я тестировал добавление литеральной строки вместо переменной агрегации, и я получаю результат с соответствующим ObjectID. Похоже, что строковое значение не передается функции Mongo ObjectId, а имя переменной передается как буквальная строка.
Кто-нибудь знает, возможно ли то, что я пытаюсь сделать? Есть ли какая-то магия, которой я не хватает?