将分片数据库与$ lookup聚合运算符MongoDB一起使用

时间:2019-08-20 08:40:23

标签: python-3.x mongodb

$lookup聚合阶段允许跨未分片的集合或从分片的集合到未分片的集合进行集合联接。它不允许对“ from”集合进行分片。另一方面,分片是一种有用的水平缩放方法。

$lookup用于分片数据库的最佳实践是什么?

我已经建立了一个新的分片mongodb数据库。我在未分片的数据库上尝试了$ lookup,效果很好。但是现在尝试在分片数据库上使用$ lookup不允许我这样做。

订单文件

{
    _id: ObjectId("..."),
    products: [
    ObjectId("..<Car ObjectId>.."),
    ObjectId("..<Bike ObjectId>..")
    ]
}

无法在分片数据库上运行查询

db.order.aggregate([
    {
           $lookup:
             {
               from: "products",
               localField: "products",
               foreignField: "_id",
               as: "productObjects"
             }
    }
])

所需的输出

{
      _id: ObjectId("..."),
      products: [
        ObjectId("..<Car ObjectId>.."),
        ObjectId("..<Bike ObjectId>..")
      ],
      productObjects: [
        {<Car Object>},
        {<Bike Object>}
      ],
}

0 个答案:

没有答案