【发布时间】:2020-03-13 19:39:54
【问题描述】:
我想从每组字段中只获取一个元素: 这是我的结果
[{
"_id":{"device_id":"9"},
"x":["2019-11-17T18:03:33.000Z","2019-11-17T12:02:35.000Z"],
"y":["93","3"]
},
{
"_id":{"device_id":"8"},
"x":["2019-11-16T12:05:33.000Z","2019-11-16T12:02:35.000Z"],
"y":["33","3"]
}]
我只想获取最后插入的数据,这意味着只有一个来自 x 的值和一个来自 y 的值。 这是代码:
aggregate([
{ "$sort": { "timeStamp": -1 } },
{
$group:
{
_id: { device_id: '$device_id' },
x: {
$push: "$timeStamp"
},
y: {
$push: "$value"
},
device_name: {
$push: "$device_name"
},
}
}
}]
我已经尝试添加项目exp:
{
$project: {
time: "$x",
value:"$y",
integerValues:{
$map:{
input: "x",
as: "integerValue",
in: { $trunc: "$$integerValue" }
}
}
}
}
这是我期望的结果:
{
"_id":{"device_id":"8"},
"x":["2019-11-16T12:05:33.000Z"],
"y":["33"]
},
{
"_id":{"device_id":"9"},
"x":["2019-11-17T18:03:33.000Z"],
"y":["93"]
}
我搜索了很多关于这个问题没有任何解决方案
【问题讨论】:
标签: mongodb mongoose mongodb-query aggregate