表名是这样的t_equipment
数据结构是这样的
{
"_id" : "9000068268_201703",
"data" : [
[
9000068268.0,
0.0,
231.1,
0.4,
232.2,
0.0,
233.3,
4954.4,
3614.8,
4768.8,
0.0,
0.0,
0.0,
13338.4,
0.0,
1490338662906.0
],
[
9000068268.0,
0.0,
231.1,
0.4,
232.2,
0.0,
233.3,
4954.4,
3614.8,
4768.8,
0.0,
0.0,
0.0,
13338.4,
0.0,
1500338662908.0
],
[
9000068268.0,
0.0,
231.1,
0.4,
232.2,
0.0,
233.3,
4954.4,
3614.8,
4768.8,
0.0,
0.0,
0.0,
13338.4,
0.0,
1800338662908.0
]
}
我现在查询表中_id为9000068268_201703,data数据中数组下表为[15]的,时间戳最接近1600338662908.0的前面一条数据:
[
9000068268.0,
0.0,
231.1,
0.4,
232.2,
0.0,
233.3,
4954.4,
3614.8,
4768.8,
0.0,
0.0,
0.0,
13338.4,
0.0,
1500338662908.0
]
不知道如何写这个方法,希望有人指导下,可以用原生的写法或用spring-mongodb的写法都可以,但是不能做遍历的动作,效率太低了
使用:如下查找法没查出条数:db.getCollection('t_equipment').find({ "data": { $elemMatch: { "[15]": 1490338662906.0} } }) ,我需要返回二维数组中指定索引的一维数组的所有值,而不是整个集合对象