MongoDB中是否有等效的redis命令管道?

时间:2016-05-24 07:17:01

标签: python mongodb pymongo pipeline

我正在调试一个使用mongodb作为存储的Web应用程序中的慢速API端点。事实证明,请求向MongoDB发送了8个不同的查询,并将数据组合在一起返回。 MongoDB存在于另一台主机上,因此该请求涉及8次往返。

这8个请求之间没有任何依赖关系,所以如果我可以批量或并行发送8个查询,可以节省大量时间。

我想知道Mongo是否支持Redis的管道,或者可能发送一个脚本(如Redis中的lua脚本)来获取数据,以便我可以一次性获取所有数据?

如果没有,有没有办法并行发送查询? (该应用程序基于python / tornado / pymongo)

2 个答案:

答案 0 :(得分:1)

mongodb中有很多选项可供python driver pymonogo访问。

最好的方法(恕我直言)是aggregation framework,它允许你建立一个管道。但是,某些功能受mongodb版本以及是否有分片群集的限制。

其他选项包括map-reducesimple operators

答案 1 :(得分:0)

AFAIK,MongoDB中没有类似管道的机制。

我会尝试使用server-side scripts