如何使用N1QL查询选取文档子字段及嵌套元素
使用N1QL选取嵌套字段的子元素
当然可以!在N1QL中,我们可以通过**点符号(.)**直接访问嵌套在对象里的子字段,完全能实现你想要的从book字段中提取$ref和_type的需求。
先看你的示例文档:
{ "content": { "_id": "88w73c9e-f7ed-4816-7778-5247e69cd77450", "_type": "Publish", "author": "abcd", "book": { "$ref": "03ee49ec-4452-4ebs-9f49-9f3aa4rra53f", "_type": "Book" } } }
对应的N1QL查询语句
如果你想单独提取book下的$ref和_type,可以直接在SELECT子句中指定这些嵌套字段:
SELECT content.book.`$ref` AS book_ref, content.book._type AS book_type FROM `your-bucket-name`; -- 记得替换成你的实际桶名
小提示
- 因为
$ref字段名包含特殊字符$,所以需要用**反引号(`)**把它包裹起来,避免N1QL解析出错; - 使用
AS可以给提取出来的字段设置更友好的别名,方便后续使用; - 如果需要同时保留其他上层字段(比如
content.author),直接在SELECT里追加即可,比如content.author, content.book.$ref...。
内容的提问来源于stack exchange,提问作者Sanjay
相关产品推荐
相关产品推荐

