簡體   English   中英

MongoDB:文檔中兩個 arrays 的合計值(映射)

[英]MongoDB : aggregate value from two arrays in document (mapping)

我是 MongoDB 的新手,我在這樣的文檔中有兩個 arrays。 我想從 arrays 中獲取特定值。 例如“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
}

感謝幫助。

我沒有找到最佳答案,所以我將結果分組然后循環它們以獲得我的值

 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' },
    },
  },
]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM