【发布时间】:2018-08-30 07:28:13
【问题描述】:
我正在尝试这种聚合,但输出显示为反向
{
"SWITCHID": "Z4-W40-SS451A/5",
"CREATE_DATE": ISODate("2018-02-24T19:00:14.808Z"),
"RECEIVEDDATE": ISODate("2018-02-24T20:30:14.808Z"),
"STATUS": "LIGHTS ON",
"avgduration": 202.50562416666668,
"offduration": 1.5
} {
"SWITCHID": "Z4-W40-SS451A/5",
"CREATE_DATE": ISODate("2018-02-24T19:00:14.808Z"),
"RECEIVEDDATE": ISODate("2018-02-24T20:30:14.808Z"),
"STATUS": "LIGHTS OFF",
"avgduration": 269.5074988888889,
"offduration": 1.5
}
db.k.aggregate({
"$group": {
_id: {
SWITCHID: "$SWITCHID"
},
on_minus_off: {
$sum: {
"$cond": [{
"$eq": ["$STATUS", "ON"]
}, "$avgduration", {
$subtract: [0, "$avgduration"]
}]
}
}
}
})
输出是:
{
"_id" : {
"SWITCHID" : "Z4-W40-SS451A/5"
},
"on_minus_off" : -472.0131230555556
}
但预期的输出是:
202.50562416666668-269.5074988888889=-67.00187472222222
【问题讨论】:
-
请用 ACTUAL 和 EXPECTED 输出更新问题 - 它们的格式甚至不接近
-
@mplungjan 我的文档 swichID 都相同,但状态不同第一个文档“avgduration”:202.50562416666668-第二个文档avgduration“:269.5074988888889 = 67.00187472222222 这是我的预期输出,但我没有得到这个输出任何建议我
-
请更新问题。您可以编辑和添加可读格式的信息
标签: javascript node.js mongodb mongoose aggregation-framework