【问题标题】: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 元素,我将获取作者。 另一种方法是使用“填充”。但我不知道这种方式是否像关系数据库中的“加入”?它的性能是否比第一种方式更好?

【问题讨论】:

    标签: database mongodb mongoose nosql schema


    【解决方案1】:

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

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

    【讨论】:

    • $lookuppopulate 快吗?
    • 我没有尝试在两者之间进行比较,但我在medium 上阅读了这篇文章作为我的答案参考。如果您需要一些精确的性能,我认为您也可以这样做
    猜你喜欢
    • 2015-07-13
    • 2016-10-10
    • 2019-09-16
    • 2014-09-16
    • 2015-07-13
    • 2020-01-17
    • 2016-04-28
    • 2021-01-09
    相关资源
    最近更新 更多