$ lookup在两个子文档字段上

时间:2019-09-28 13:54:25

标签: mongoose aggregation-framework

我正在执行一个猫鼬聚合,首先在一个字段上运行$ lookup,然后在查找记录中的两个字段上运行$ lookup。

子文档的这两个$ lookups中的每一个在它们都是第一个时都有效,但是第二个返回空数组。由于更改顺序可以使任何一个先工作都可以,所以我知道我的数据是正确的,并且$ lookup中的语法是正确的。有其他方法吗?

简单的例子:

Parent.aggregate([
  {
    $lookup: {
      from: 'children',
      localField: 'child',
      foreignField: '_id,
      as: 'child'
    },
  },
 {
    $lookup: {
      from: 'colors',
      localField: 'child.color',
      foreignField: '_id,
      as: 'child.color'
    },
  },
  {
    $lookup: {
      from: 'sizes',
      localField: 'child.size',
      foreignField: '_id,
      as: 'child.size'
    }
  },
]);

// populates 'color' document if color $lookup is first, populated 'size' document if $size is first

0 个答案:

没有答案