我们正在尝试将_id对象与不能正常工作的mId foreignfield匹配 . 寻找mondodb文档 . 他们对此没有任何意义 . 是否可以使用mongodb查询?
_id作为文档中的对象
"_id" : ObjectId("56ab6663d69d2d1100c074db"),
mId as document in document
"mId" : "56ab6663d69d2d1100c074db",
查询如下:
collection.aggregate([
{
$lookup:
{
from: "category",
localField: "_id",
foreignField: "mId",
as: "categories"
}
}
])
UDPATE
作为总结,mongodb不支持$ lookup中的类型强制 . 所以要在上面工作,我必须在文件本身中使用_id和mId作为 ObjectId 类型才能使它工作 .
2 回答
您可以使用mid加入id . 虽然$ lookup不支持强制,但使用$ project管道阶段并首先将所有mid转换为Object Id,然后尝试$ lookup
从Mongodb 4.0开始,您可以使用$toString聚合运算符将ObjectId转换为字符串 .
Jira问题:Allow $lookup between ObjectId (_id.str) and string
现在您的查询应如下所示: