mongodb在_id字段上从字符串到objectid grompate $查找
我有两个收藏。
客户:
{
"_id" : ObjectId("584aac38686860d502929b8b"),
"name" : "user",
"email" : "[email protected]"
}
帖子:
{
"_id" : ObjectId("584aaca6686860d502929b8d"),
"title" : "Post",
"description":"description",
"user_id" : "584aac38686860d502929b8b"
}
我想基于User_id(来自 ports
Collection) - _id(在>客户
Collection)。
我尝试了以下查询:
dbo.collection('customers').aggregate([
{
$lookup:
{
from: 'posts',
localField: 'user_id',
foreignField: '_id',
as: 'posts'
}
}
])
但是它不起作用。
我得到的输出:
{
"_id": "584aac38686860d502929b8b",
"name": "user",
"email": "[email protected]",
"posts": []
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
从附件
帖子
收集,user_id
是字符串,但不是objectid
。要进行比较,您必须先将
user_id
将其转换为objectId
首先。示例mongo playground
注意:从您现有的
$ lookup
中,您已经有反向<代码> localfield 和foreferfield
。From attached
posts
collection,user_id
was a string but notObjectId
.To compare, you have to convert
user_id
toObjectId
first.Sample Mongo Playground
Note: From your existing
$lookup
, you have reversedlocalField
andforeignField
.Equality Match with a Single Join Condition