mongodb怎么做关联查询
假设flower集合如下:
{flowerName:"mudan", flowerList:[{time:1112334444, flowerId:12, partner:1},{time:1678334444, flowerId:13, partner:2}]}
{flowerName:"dujuan", flowerList:[{time:13e34444, flowerId:1, partner:3},{time:1678334444, flowerId:4, partner:4}]}
flowerList中每个元素的partner指向user表
假设user集合如下
{_id:1, nick:"小明", gender:"男"}
{_id:2, nick:"小红", gender:"女"}
{_id:3, nick:"小花", gender:"女"}
{_id:4, nick:"花花", gender:"女"}
现在要实现查找flower集合并且将partner指向的user信息也查询出来要怎么做呢?
6 回复
mongoose populate 了解一下
来自✨ Node.js开源项目精选✨
@vendar 这个我用过,但针对数组内嵌这种方式没用过,在网上也没找到相关文档,大佬,能说的详细点吗?
可以调整下结构,flower和partner的关系可以单独用一个集合来放
mongoose文档,我是整个读过一遍,确实没有介绍数组嵌套文档的查询方法,但是mongo的文档里有介绍
我也没有写过这种结构,不一定对,你试一试看
Flowers.find({}).populate({
path: 'flowerList.partner'
}).then(resulte => {
// ....
}).cathc(error => {
// ....
})
@BengBu-YueZhang 厉害,我也这样想过,但是没写demo测试,看了你的回答后我抱着试试看的心态写了个demo,结果发现竟然可以这样用。
在这里真的想吐嘈下mongoose的文档,真心找不到相关内容。
aggregate.lookup