t152011 2019-07-19 14:04 采纳率: 0%
浏览 193
已结题

mongodb关于查询格式的写法

表名是这样的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} } })  ,我需要返回二维数组中指定索引的一维数组的所有值,而不是整个集合对象
  • 写回答

3条回答 默认 最新

  • 像忘了谁sq 2019-07-19 16:23
    关注

    参考这个
    https://www.cnblogs.com/jiandankuaile/p/7942016.html
    不知道你的data为啥没有字段名;大概是这样查
    { "data": { $elemMatch: { "字段名": {'$gte' : 时间戳, '$lte' : 时间戳}} } }

    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?