2016-05-12 48 views
2

以下是couchbase中的示例文檔(userdetails)。n1ql查詢從數組中刪除具有參數值null的數據

{ "friends":[ 
    { 
    "company":"microsoft", 
    "firstname":"criss", 
    "lastname":"angel" 
    }, 
    { 
    "company":"google", 
    "firstname":"captain", 
    "lastname":null 
    } ] } 

基於公司名稱,我想從數組中刪除相應的json文檔。

n1ql查詢

update default use keys "userdetails" set friends=array_remove(friends,a) for a in friends when a.company="google" end returning friends 

Im不能夠去除使用上述查詢JSON數據。

如果我們有空字符串(「姓氏」:「」)而不是空值,此查詢正常工作。

那麼,如何去除,如果任何參數值是「空」

回答

2

可以更換整個陣列的朋友如下:

UPDATE default 
USE KEYS "userdetails" 
SET friends = ARRAY a FOR a IN friends WHEN a.company <> "google" END 
RETURNING friends;