Couchbase n1q1 查询以获取地图特定键

问题描述 投票:0回答:1

下面是 couchbase 文档 `

{
  "docId": "1111212",
  "user": {
    "id": "5050017",  
    "name": "string", 
    "type": "string"
  },
  "books": {
        "1": {
          "id": "1",
          "name": "Book1",
          "author":{
             "id":"A1",
             "name":"name"
          }
        }
      "2": {
          "id": "2",
          "name": "Book2",
          "author":{
             "id":"A2",
             "name":"name"
            }
        }
    }
}

  

` 我需要使用选择查询获取所有书籍名称 我试过这个

SELECT b.books.*.name FROM bucket_name b   where meta().id like '%books_details%' OFFSET 0 LIMIT 10

我能够获取书籍下的所有 json 键,但不能获取每张地图下的字段。

SELECT OBJECT_NAMES(b.books) FROM bucket_name b where meta().id like '%books_details%' OFFSET 0 LIMIT 10

sql json nosql couchbase n1ql
1个回答
0
投票
SELECT u.* 
FROM bucket_name AS b 
UNNEST OBJECT_VALUES(b.books) AS u
WHERE .....;

SELECT ARRAY v.name FOR f:v IN b.books END AS names
FROM bucket_name AS b;
© www.soinside.com 2019 - 2024. All rights reserved.