Mongo聚合框架与类似javascript的链接:性能

时间:2013-03-18 17:43:41

标签: mongodb aggregation-framework

我读过聚合框架依赖于“管道”架构,即

db.myCollection.aggregate({
  $op1: { ... }
},{
  $op2: { ... }
})

另一方面,“传统”mongo命令行查询语法也是管道式的:

db.myCollection.find({
  field: 'value'
}).filter({
  ...
}).forEach({
  ...
})
  1. 引擎盖下的实施有什么不同吗?
  2. “传统”语法也有点像管道 - 为什么存在替代语法?

1 个答案:

答案 0 :(得分:2)

  

引擎盖下的实施有什么不同吗?

很多。例如,第一个在其C ++代码中“MongoDB”内部作为聚合框架运行,而另一个在捆绑的JS控制台内的V8 / spidermonkey(取决于您的版本)环境中运行。

最有可能提到的是,您显示的后一种语法不会在MongoDB中“运行”,而是具有通过JS驱动程序与MongoDB交互的JS控制台。

这适用于大多数数据库,例如MySQL控制台和许多其他数据库。它们只是捆绑在一起的客户端程序。

  

“传统”语法也有点像管道 - 为什么存在替代语法?

因为控制台不是MongoDB。