了解填充猫鼬

Posted

技术标签:

【中文标题】了解填充猫鼬【英文标题】:Understand populate in mongoose 【发布时间】:2021-05-03 03:45:54 【问题描述】:

我有名为 Book 和 Author 的集合。一本书可以由几个作者写。所以集合看起来像这样:

Book: 
id: objectId,
name: string,
price: number,
authors: [objectId]


Author: 
id: objectId,
nameL string

Book集合的作者字段是作者objectId的数组。 当我想获取一些书籍及其作者时,我将获取作者 objectId 数组。然后,对于每个 objectId 元素,我将获取作者。 另一种方法是使用“填充”。但我不知道这种方式是否像关系数据库中的“加入”?它的性能是否比第一种方式更好?

【问题讨论】:

【参考方案1】:

我假设您将获得每位作者的一些图书数据。我没有使用populate(因为populate在猫鼬中),而是在mongodb中使用$lookup,它更像是加入关系数据库。这是文档

https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/#use-lookup-with-an-array

【讨论】:

$lookuppopulate 快吗? 我没有尝试在两者之间进行比较,但我在medium 上阅读了这篇文章作为我的答案参考。如果您需要一些精确的性能,我认为您也可以这样做

以上是关于了解填充猫鼬的主要内容,如果未能解决你的问题,请参考以下文章

猫鼬'填充'不填充

为啥需要猫鼬填充?

猫鼬填充未填充必填字段

猫鼬填充功能不填充

尽管路径被填充,猫鼬填充()返回未定义

填充猫鼬后查找