运维开发网

MongoDB与$lookup聚合运算符一起使用分片

运维开发网 https://www.qedev.com 2020-04-17 16:21 出处:网络 作者:运维开发网整理
MongoDB 3.2中的$lookup是新的.它在同一个数据库中执行一个左外连接到一个未管理的集合,以过滤来自“已连接”集合的文档进行处理. 要使用$lookup,from collection不能被分片. 另一方面,分片是一种有用的水平缩放方法. 一起使用它们的最佳做法是什么? 正如您引用的文档所指出的,您不能在分片集合上使用$lookup.所以最佳实践的解决方法是在单独的查询中自己执行查找.
MongoDB 3.2中的$lookup是新的.它在同一个数据库中执行一个左外连接到一个未管理的集合,以过滤来自“已连接”集合的文档进行处理.

要使用$lookup,from collection不能被分片.

另一方面,分片是一种有用的水平缩放方法.

一起使用它们的最佳做法是什么?

正如您引用的文档所指出的,您不能在分片集合上使用$lookup.所以最佳实践的解决方法是在单独的查询中自己执行查找.

>执行聚合查询.

>将查询结果中的“localField”值从数组中拉出,可能使用Array#map.

>使用{foreignField:{$in:localFieldArray}}之类的查询对“from”集合执行查询查询

>将您的结果合并到您需要的任何格式.

不要让$lookup限制阻止您拆分需要扩展性的集合,只需自己执行查找功能即可.

0

精彩评论

暂无评论...
验证码 换一张
取 消