嵌套文档和过滤器中带有猫鼬聚合的 $addnewFields

时间:2021-04-28 09:25:57

标签: mongodb mongoose filter aggregate

我的数据库中有此文档:

visitor = {
id: 1,
  req: {
    units: [
      {
        id: 1,
        work: {
          steps: [
            {
              id: 1,
              role: 'ACCES',
              state: {
                tags: 'TAG1',
              },
            },
            {
              id: 1,
              role: 'ROLE',
              state: {
                tags: 'TAG2',
              },
            },
          ],
        },
      },
      {
        id: 1,
        work: {
          steps: [
            {
              id: 1,
              role: 'ACCES',
              state: {
                tags: 'TAG3',
              },
            },
            {
              id: 1,
              role: 'ROLE',
              state: {
                tags: 'TAG4',
              },
            },
          ],
        },
      },
    ],
  },
};

我想为他提供一个聚合,并添加一个具有 tag 值的根自定义字段 TAG1。我尝试使用过滤器过滤、投影、添加NewFields,但无法做到。

我必须先过滤 units 以获得具有“ACCES”角色的一个,然后过滤步骤。

Exepted 输出示例:

{
   id: 1,
   tag: 'TAG1'
}

有人想用 Visitor.aggregate() 以单一方式做到这一点吗?

谢谢!

0 个答案:

没有答案