Доступ к полю из $ addFields в MongoDB - PullRequest
0 голосов
/ 08 декабря 2018

Я использую агрегат MongoDB и хочу использовать поля, которые я добавил с помощью $ addFields, например, для расчета.Это как-то возможно?Без $ проекта будет лучше.

Post.aggregate([
  { $match: { _id: "id" },
  { $addField: {
      first: 5,
      second: 10,
      third: { $add: ["$first", "$second"] }
    } 
  } 
)]

1 Ответ

0 голосов
/ 08 декабря 2018

Вы не можете получить доступ к этим полям на одной и той же стадии конвейера (вы можете ссылаться только на поля, которые были возвращены с предыдущей стадии конвейера), вы должны сделать это на следующей стадии:

Post.aggregate([
    { $match: { _id: "id" },
    { 
        $addField: {
            first: 5,
            second: 10           
        } 
    },
    {
        $addFields: {
            third: { $add: ["$first", "$second"] }
        }
    }
])
...