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

n1ql query to remove data from array which has parameter value null

以下是 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"

,如何删除

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

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