$lookup
是MongoDB 3.2中的新功能.它对同一数据库中的未整数集合执行左外连接,以过滤来自"已连接"集合的文档以进行处理.
要使用$lookup
,from
集合不能分片.
另一方面,分片是一种有用的水平缩放方法.
将它们组合在一起的最佳做法是什么?
正如您引用的文档所示,您不能$lookup
在分片集合中使用.因此,最佳实践解决方法是在单独的查询中自己执行查找.
执行您的aggregate
查询.
将查询结果中的"localField"值拉入数组,可能使用Array#map
.
find
使用类似的查询对"from"集合执行查询{foreignField: {$in: localFieldArray}}
将结果合并为您需要的任何格式.
不要让$lookup
限制阻止您分割需要它以实现可伸缩性的集合,只需自己执行查找功能.