n1ql查询从数组中删除数据,该数组的参数值为null

时间:2016-05-12 08:33:15

标签: n1ql

以下是couchbase中的示例文档(userdetails)。

{  "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

我无法使用上述查询删除json数据。

如果我们有空字符串(“lastname”:“”)而不是空值,则此查询正常工作。

那么,如果任何参数值为“null”,如何删除

1 个答案:

答案 0 :(得分:2)

您可以按如下方式替换整个好友数组:

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