mongodb多表联查$lookup如何处理结构不同的表?

比如,我的两个表结构如下:

db.orders.insertMany([
{ "_id" : 1, "badge" : [{ "id" : 11 }, { "id" : 12 }, { "id" : 23 }] },
{ "_id" : 2, "badge" : [{ "id" : 11 }, { "id" : 22 }, { "id" : 13 }] }
……
])
db.badges.insertMany([
{ "id" : 11 },
{ "id" : 12 },
{ "id" : 13 },
{ "id" : 22 },
{ "id" : 23 }
……
])

就是需要遍历 orders.insertManybadge
用每条数据中 badge 项和表 badges 匹配

……
orders.aggregate({
    $lookup: {
        from: "badges",
        localField: "item",
        foreignField: "id",
        as: "badge_docs"
    }
})
……

我的联查如上,但显然这是错误的
请问我这种需求,应该如何实现呢?望解答,谢谢!

阅读 1.1k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题