У меня есть две коллекцииMongoDB Регистрация на поле _ID от строки к ObjectId
пользователя
{ "_id" : ObjectId("584aac38686860d502929b8b"), "name" : "John" }
Роль
{ "_id" : ObjectId("584aaca6686860d502929b8d"), "role" : "Admin", "userId" : "584aac38686860d502929b8b" }
Я хочу присоединиться к этим коллекции на основе на userId (in Роль collection) - _id (in пользователь сбор).
Я попытался ниже запрос:
db.role.aggregate(
{
$lookup:
{
from: 'user',
localField: 'userId',
foreignField: '_id',
as: 'output'
}
}
);
Это дает мне ожидаемых результатов до тех пор, как я хранить USERID как ObjectId. Когда мой userId является строкой, результатов нет. Ps: Я пытался
foreignField: '_id'.valueOf()
и
foreignField:' _id'.toString()
. Но не удастся совпадения/объединения на основе полей ObjectId-string.
Любая помощь будет оценена по достоинству.