问题遇到的现象和发生背景
需求:传输设备编号,时间间隔和多个数据下标查询数据,单个Temperature的Array中有11w个温度数据,全部查出来再去取不现实,MongoTemplate中未提供$map和$arrayElemAt的使用方法。
问题相关代码,请勿粘贴截图
代码:利用MongoDB的SQl查询已实现。
db.temperatureAndPic.aggregate([
{
$match : {
number : "3",
insertDate : {
$gte:ISODate("2021-11-22T11:10:00Z"),
$lt:ISODate("2021-11-22T12:09:59Z")
}
}
},
{
$project : {
number : 1,
insertDate : 1,
temperature : {
$map : {
input : [0,200,400,500,600],
as : "index",
in : {
$arrayElemAt : ["$temperature", "$$index"]
}
}
}
}
},
{
$sort : {
insertDate:1
}
}
]);
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
查询出来的结果如下图: