Meteor Mongo Aggregate $ lookup指定输出字段

时间:2018-03-19 23:15:26

标签: mongodb meteor aggregation-framework

我有两个系列:产品和股票。 这两个集合之间的关系是一对一的。

产品结构:

{
_id:
sku: 
....
}

股票结构:

{
_id:
sku:
availability: []
....
}

我的查询:

Products.aggregate([
        {
          $match: cAux
        }, {
          $lookup: {
            from: "Stocks",
            localField: "sku",
            foreignField: "sku",
            as: "availability"
          }
        }, {
          $sort: PRODUCT_SORT
        }
      ]);

此结果"加入"是

{
_id:
sku: 
availability: {_id:, sku:, **availabity**: []}
...
}

加入是可以的,但我想只加入可用性数组字段,而不是整个Stock文档。什么是实现这一目标的最佳方式?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

<强>解决方案

Products.aggregate([
        {
          $match: cAux
        }, {
          $lookup: {
            from: "Stocks",
            localField: "sku",
            foreignField: "sku",
            as: "availability"
          }
        }, {
          $project: {
            ...PRODUCT_FIELDS,
            availability: {
              $arrayElemAt: ['$availability.availability', 0]
            }
          }
        }, {
          $sort: PRODUCT_SORT
        }
      ]);