MongoDB 中是否有等效的 redis 命令管道?
Is there an equivalent of redis command pipeline in MongoDB?
我正在使用 mongodb 作为存储的 Web 应用程序中调试一个缓慢的 API 端点。结果是请求向 MongoDB 发送了 8 个不同的查询,并将数据组合到 return。 Mongo数据库位于另一台主机上,因此请求涉及 8 次往返。
这 8 个请求之间没有任何依赖关系,所以如果我可以将这 8 个查询批量或并行发送,可以节省很多时间。
我想知道 Mongo 是否支持 Redis 的管道之类的东西,或者可能发送一个脚本(如 Redis 中的 lua 脚本)来获取数据,这样我就可以将所有数据集中在一起去吗?
如果没有,有没有办法并行发送查询? (该应用程序基于 python/tornado/pymongo)
在 mongodb 中有许多用于此类事情的选项,所有这些选项都可以通过 python driver pymonogo 访问。
最好的方法(恕我直言)是 aggregation framework,它允许您构建管道。但是,某些功能受限于 mongodb 版本以及您是否有分片集群。
其他选项包括map-reduce or simple operators。
据我所知,MongoDB 中没有类似管道的机制。
我会尝试使用 server-side scripts。
我正在使用 mongodb 作为存储的 Web 应用程序中调试一个缓慢的 API 端点。结果是请求向 MongoDB 发送了 8 个不同的查询,并将数据组合到 return。 Mongo数据库位于另一台主机上,因此请求涉及 8 次往返。
这 8 个请求之间没有任何依赖关系,所以如果我可以将这 8 个查询批量或并行发送,可以节省很多时间。
我想知道 Mongo 是否支持 Redis 的管道之类的东西,或者可能发送一个脚本(如 Redis 中的 lua 脚本)来获取数据,这样我就可以将所有数据集中在一起去吗?
如果没有,有没有办法并行发送查询? (该应用程序基于 python/tornado/pymongo)
在 mongodb 中有许多用于此类事情的选项,所有这些选项都可以通过 python driver pymonogo 访问。
最好的方法(恕我直言)是 aggregation framework,它允许您构建管道。但是,某些功能受限于 mongodb 版本以及您是否有分片集群。
其他选项包括map-reduce or simple operators。
据我所知,MongoDB 中没有类似管道的机制。
我会尝试使用 server-side scripts。