mongodb怎么做关联查询
发布于 6 年前 作者 lovegnep 3656 次浏览 来自 问答

假设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

回到顶部