如何在数组中获取不包含具有特定值的对象的文档

时间:2017-05-02 13:36:44

标签: couchbase nickel

例如,我有两个文件:

{
  communication: "some data 1"
  users: [
    {
      name: 'Peter',
      role: 'admin'
      gender: 'male'
    },
    {
      name: 'John',
      role: 'guest'
      gender: 'male'
    }
  ]
}


{
  communication: "some data 2"
  users: [
    {
      name: 'Kollins',
      role: 'admin'
      gender: 'male'
    },
    {
      name: 'Steve',
      role: 'moderator'
      gender: 'male'
    }
  ]
}

最后,我必须获取users数组中user以及role: 'guest'内没有的文档。基于两个文档的例子,我必须获得第二个文档。 伪代码如下: select * from bucket where users.role = 'guest' is missing

1 个答案:

答案 0 :(得分:1)

您需要使用ARRAY映射用户数组并检查是否有用户NOT EXISTS

SELECT * FROM bucket WHERE NOT EXISTS ARRAY users FOR user IN users 
WHEN user.role='guest' END