【问题标题】:MongoDB aggregation vs Mongoose virtualsMongoDB 聚合与 Mongoose 虚拟
【发布时间】:2020-10-14 23:10:01
【问题描述】:

this post 我了解到 mongoose 围绕 MongoDB 创建了一个框架,它以不同的方式执行其中一些查询。

我读过populate virtuals。当您可以使用它们来获得所需的结果时,它们与 MongoDB 聚合相比有哪些优点和缺点?什么时候应该使用一个而不是另一个?

【问题讨论】:

    标签: node.js mongodb mongoose aggregation-framework mongoose-populate


    【解决方案1】:

    猫鼬: 是一个非常好的围绕 MongoDB 的框架,可以轻松地使用 MongoDB,因为大多数事情都是由 Mongoose 内部管理的。填充虚拟是框架的一部分,然后将允许您在驱动程序级别解决基本的实体关系。

    聚合框架: 是一个更高级的功能,您可以将其视为一种查询语言(实际上是这样),您可以在其中创建在 DB 级别解析的基本、中等、高级查询(这在性能方面存在巨大差异)。您不仅可以使用 $lookup “获取”一些数据,还可以通过某个键过滤数据或分组。虚拟机无法做到的事情。

    一般来说,您可以将聚合框架视为在 MongoDB 中编写面向性能查询的一种非常简洁且可扩展的方式,因为整个管道都在 DB 级别解决而不是驱动级别。

    注意: 聚合表达式也可以用作 findAndModify 更新管道的一部分,这意味着您可以使用管道计算查找并更新数据(这是虚拟机无法做到的)。

    注意: 即将发布的 MongoDB 4.4 版本还将在 find() 中引入聚合表达式,这使得聚合语法成为编写查询的良好投资。

    【讨论】:

      猜你喜欢
      • 2018-05-20
      • 2016-07-02
      • 2015-08-01
      • 2015-05-29
      • 1970-01-01
      • 2018-03-10
      • 2017-09-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多