Couchbase Spring Data 按 ID 返回没有索引的对象,但 Couchbase UI 不会

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

我有一个超级简单的 Couchbase-Spring-Data 项目,连接到 Couchbase 6.6 实例,基于 bealdung

的演练

该项目按预期工作,我能够通过 Couchbase 的 ID 创建和读取文档。 然而,当我进入 couchbase UI 并运行一个简单的查询时;

select *, meta().id from `bucket` where meta().id = 'id:13'

(无论如何,这就是 ID 现在的样子)。

用户界面告诉我

No index available on keyspace bucket that matches your query.
这是真的,meta().id 上没有主索引或专用索引。

那么 Couchbase-spring-data 是如何找到对象的?

我仍在继续研究文档。但到目前为止我还没有找到任何可以解决问题的方法。

couchbase sql++ spring-data-couchbase
1个回答
0
投票

在大多数情况下,SQL++ 查询需要索引才能运行,因此您有理由质疑发生了什么。

但是,并非“每个”查询都需要索引。例如,如果我知道密钥,我可以在 SQL++ 查询中使用 USE KEYS

 语法:
SELECT m.*, meta().id FROM `travel-sample`.myscope.mycollection m USE KEYS 'doc1'

注意谓词是 
USE KEYS 'doc1'

而不是

WHERE META().id = 'doc1'
我不能确定 Spring 是如何做到这一点的,它可能会使用 

key/value API

而不是 SQL++(如果您已经知道键,这是查找数据的更有效方法)。

© www.soinside.com 2019 - 2024. All rights reserved.