美文网首页
10-Mongodb 节点查询、聚合查询及类型转换

10-Mongodb 节点查询、聚合查询及类型转换

作者: 过桥 | 来源:发表于2020-11-04 15:49 被阅读0次

1、需求背景

数据结构如下

{
    "_id": ObjectId("5df397720c562263dcad6e36"),
    "DataGatherCode": "xxxxxxxxxxxxxxx",
    "MonitorTime": ISODate("2019-12-13T13:50:41.000Z"),
    "Type": "RealTimeData",
    "DataList": [
        {
            "PollutantCode": "001",
            "AvgStrength": "100.0000"
        },
        {
            "PollutantCode": "002",
            "AvgStrength": "999999"
        }]
      ...
}
...

查询大于指定值的监测数据

2、查询方式一,子节点查询

db.getCollection("空间").find({
    "MonitorTime": {
        $gte: ISODate("2019-12-11T12:10:30.000+0800"),
        $lte: ISODate("2019-12-31T12:40:30.000+0800")
    },
    "DataList": {
        "$elemMatch": {
            "AvgStrength": {  $gt: '18' }
        }
    }
})

直接使用elemMatch查询子节点,但因节点中数据类型为字符串,不满足需求,如类型一致可直接使用,直接明了

3、查询方式二,聚合,统计,类型转换

db.getCollection("空间").aggregate([
    {
        $match: {
            "MonitorTime": {
                $gte: ISODate("2019-12-11T12:10:30.000+0800"),
                $lte: ISODate("2019-12-18T12:40:30.000+0800")
            }
        }
    },
    {
        $unwind: "$DataList"
    },
    {
        $project: {
            "序列号": "$DataGatherCode",
            "监测时间": {
                $dateToString: {
                    format: "%Y-%m-%d %H:%M:%S:%L",
                    date: "$MonitorTime",
                    timezone: "+08"
                }
            },
            "监测项目": "$DataList.PollutantCode",
            "监测值": {
                $toDouble: "$DataList.AvgStrength"
            }
        }
    },
    {
        $match: {
            "监测值": {
                $gt: 18
            }
        }
    }
])

先大范围过滤数据,再提取子节点数据并转型,最后进行指定值过滤

相关文章

  • 10-Mongodb 节点查询、聚合查询及类型转换

    1、需求背景 数据结构如下 查询大于指定值的监测数据 2、查询方式一,子节点查询 直接使用elemMatch查询子...

  • ElasticSearch 7.x 聚合查询

    聚合查询 |ES 的聚合查询和MyQL的聚合查询类型,ES 的聚合查询相比MySQL 要强大的多,ES提供的统计数...

  • zset类型聚合查询

    ZUNIONSTORE 语法 计算给定的一个或多个有序集的并集,其中给定 key 的数量必须以 numkeys 参...

  • Django聚合查询及分组查询

    导入聚合函数方法 聚合查询查询所有书籍的数量 上面的方法执行返回的结果是一个字典,其中sum作为键,查询结果作为值...

  • es7.x(10)aggs聚合查询

    ES聚合查询流程 核心概念2.1 桶2.2 指标 ES聚合查询的语法3.1 聚合查询的size语法 指标聚合4.1...

  • Kibana操作ElasticSearch

    对比关系型数据库 Elasticsearch6.0以后删除了Type类型 进入开发工具 查询 聚合查询

  • MongoDB聚合查询

    本文为转载,原文:MongoDB聚合查询 聚合查询 MongoDB除了基本的查询功能之外,还提供了强大的聚合功能。...

  • JPA查询部分转换

    JPA查询部分转换 方法一: 方法二:需注意类型转换

  • mongoDB 2 聚合查询

    测试数据: 1. 基本总量查询 2. 聚合后的总量查询 3.多聚合的总量查询 4.聚合的多列总量查询

  • 05-Mysql数据库02

    mysql数据查询 条件查询 模糊查询 范围查询 判断空 排序 聚合函数 分组 分组要和聚合一起用 分页 连接查询...

网友评论

      本文标题:10-Mongodb 节点查询、聚合查询及类型转换

      本文链接:https://www.haomeiwen.com/subject/jfugvktx.html