阿里雲DLA新功能來襲 查詢MongoDB嵌套字段更方便

背景

DLA以前對於MongoDB只支持簡單類型的映射查詢,對於嵌套字段沒法直接查詢,最近咱們加入了對嵌套字段直接查詢的支持,這篇文章給你們介紹一下。mysql

MongoDB嵌套字段查詢詳解

首先咱們在MongoDB裏面準備一個帶有嵌套數據結構的collection:sql

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

這裏 details 裏面的 city 字段就是一個嵌套的字段。而後咱們來建立一個DLA裏面的表:json

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嵌套字段會更方便,更高效。spa


原文連接
本文爲雲棲社區原創內容,未經容許不得轉載。code

相關文章
相關標籤/搜索