美文网首页我是程序员阿里云Mongodb实践
阿里云DLA新功能来袭 查询MongoDB嵌套字段更方便

阿里云DLA新功能来袭 查询MongoDB嵌套字段更方便

作者: 阿里云云栖号 | 来源:发表于2019-08-08 17:56 被阅读26次

    背景

    DLA之前对于MongoDB只支持简单类型的映射查询,对于嵌套字段无法直接查询,最近我们加入了对嵌套字段直接查询的支持,这篇文章给大家介绍一下。

    MongoDB嵌套字段查询详解

    首先我们在MongoDB里面准备一个带有嵌套数据结构的collection:

    db.Ha.insert({
        id: 1,
        name: "james",
        age: 1,
        details: {
          city: "hangzhou"
        }
    });
    
    

    这里 details 里面的 city 字段就是一个嵌套的字段。然后我们来创建一个DLA里面的表:

    CREATE EXTERNAL TABLE `Ha` (
        `id` int,
        `name` string,
        `age` int,
        `city` string
    )
    TBLPROPERTIES (
        COLUMN_MAPPING = 'city,details.city;'
    )
    
    

    注意,我们这里用到了 COLUMN_MAPPING 的功能,它的作用是把用户在DLA层面声明的字段名映射到底层MongoDB里面的字段名,这里我们把 city 映射到了底层的 details.city 这个嵌套的字段。我们来查一下试试:

    mysql> select * from Ha;
    +------+-------+------+----------+
    | id   | name  | age  | city     |
    +------+-------+------+----------+
    |    1 | james |    1 | hangzhou |
    +------+-------+------+----------+
    
    

    搞定!

    总结

    这篇文章给大家介绍了一下怎么利用DLA去直接查询MongoDB里面的嵌套字段,在这个功能出现之前,我们只能把整个嵌套字段映射成一个string字段,然后利用json函数把要查询的具体嵌套字段拆解出来,有了这个功能之后,查询MongoDB嵌套字段会更方便,更高效。



    本文作者:Roin

    阅读原文

    本文为云栖社区原创内容,未经允许不得转载。

    相关文章

      网友评论

        本文标题:阿里云DLA新功能来袭 查询MongoDB嵌套字段更方便

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