MongoDB : совокупное значение из двух массивов в документе (сопоставление)

0

Вопрос

Я новичок в MongoDB, и у меня есть два массива в подобном документе. Я хочу получить определенное значение из обоих массивов. Например, "received_bytes" и его значение из массива значений "43118304". Я провел кое-какие исследования, но думаю, что заблудился.

fields:{
 "time",
 "received_bytes",
 "sent_bytes"
}
values:{
 "2021-11-22T08:08:30Z",
 43118304,
 43105744
}

Базовый агрегат, который я сделал

return await Metric.aggregate([
  {
    $match: matches,
  },
  { $sort: { _id: 1 } },
  {
    $group: {
      _id: params.field, // received_bytes
      values: { $push: '$values' }, // array of values for received_bytes
    },
  },
]);

Чего я ожидаю:

{
  _id:"received_bytes",
  values:[] //all received_bytes values
}

Спасибо за помощь.

aggregate javascript mongodb
2021-11-23 10:10:39
1

Лучший ответ

1

Я не нашел лучшего ответа, поэтому сгруппировал результаты, а затем зациклился на них, чтобы получить свои значения

 const metrics = await Metric.aggregate([
  {
    $match: matches,
  },
  { $sort: { _id: 1 } },
  // mapping fields=>values where field equal to params.field
  {
    $group: {
      _id: '$fields',
      values: { $push: '$values' },
    },
  },
]);
2021-11-23 11:38:55

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................