我读过聚合框架依赖于“管道”架构,即
db.myCollection.aggregate({
$op1: { ... }
},{
$op2: { ... }
})另一方面,“传统”mongo命令行查询语法也是流水线式的:
db.myCollection.find({
field: 'value'
}).filter({
...
}).forEach({
...
})发布于 2013-03-18 18:46:31
在引擎盖下的实现有什么不同吗?
很多。例如,第一个在其MongoDB代码中“在”C++代码中作为聚合框架运行,而另一个运行在捆绑的JS控制台中的V8/Spider猴子(取决于您的版本)环境中。
最值得注意的是,您展示的后一种语法不是“在”MongoDB中运行,而是一个具有通过JS驱动程序与MongoDB交互的功能的JS控制台。
这适用于大多数数据库,如MySQL控制台和许多其他数据库。它们只是捆绑了客户端程序。
“传统”语法也有点像管道式--为什么会有其他语法呢?
因为控制台不是MongoDB。
https://stackoverflow.com/questions/15483374
复制相似问题