couchbase n1qlQuery使用子查询

时间:2016-08-11 13:30:18

标签: couchbase n1ql

我有一个包含2种类型的对象: 第一:

{
  "id": "123"
  "objectNamespace": "a",
  "value": "value1"
}

第二

{
  "id": "234",
  "objectNamespace": "b",
  "value": "value2",
  "association": ["123"]
}

现在我想删除只有在类型a没有任何关联时才从类型b中删除文档:

我试试这个:

 DELETE FROM `bukcet_name` 
  WHERE objectNamespace = 'a' 
   AND id = "123" 
   AND NOT EXISTS (
          SELECT * 
            WHERE ANY item IN bukcet_name.association 
                  SATISFIES item = "123" END);

但这总是会删除ID为123的doc 我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:-1)

您的数据与查询之间存在一些不匹配。

(1)您缺少FROM子句。

(2)您使用关联而不是关联。

(3)bucket_name。

这是一个可能的查询。

DELETE FROM `bucket_name` 
  WHERE objectNamespace = 'a' 
   AND id = "123" 
   AND NOT EXISTS (
          SELECT * FROM bucket_name b2
            WHERE ANY item IN b2.association
                  SATISFIES item = "123" END);