[英]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.