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

标签 python mongodb pymongo pipeline

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

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

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

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

最佳答案

在 mongodb 中有许多用于此类事情的选项,所有这些选项都可以通过 python driver pymonogo 访问。 .

最好的方法(恕我直言)是 aggregation framework这使您可以构建管道。但是,某些功能受 mongodb 版本以及是否具有分片集群的限制。

其他选项包括 map-reducesimple operators .

关于python - MongoDB 中是否有等效的 redis 命令管道?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37406805/

相关文章:

python - Matplotlib 饼图楔形透明度?

python - 应该多久使用一次 Python 装饰器?

python - 如何在Python中使用urllib2创建新目录并保存文件?

mongodb - spring-boot mongodb 4.0 兼容性

mongodb - 使用 Pymongo 更新 MongoDB 中的嵌套文档

python - 选择 pandas 分组中的每一个

mongodb - 为什么我不能使用 Homebrew 更新到最新的 MongoDB?

javascript - 如何通过 Node.js 将 Javascript 的 Arraybuffer 插入到 mongodb

mongodb - 令人惊讶的缓慢插入到 mongodb 上限集合

python - 如何在 pymongo 中否定正则表达式