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