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