Return 来自钥匙的 couchbase 文档
Return couchbase documents from keys
我想根据我使用 spring-data-couchbase
的列表集合检索所有存在的文档
目前我正在使用
public interface PushRepository extends CrudRepository<Push,String>
和功能 pushRepository.findAll(phoneNumbers)
但我认为它正在检索所有这些然后进行过滤。
我如何 运行 N1QL 查询,以便我只检索键
上的文档
@Query("#{#n1ql.selectEntity} WHERE role = 'admin' AND #{#n1ql.filter}")
Collection<Push> findByIds();
我要运行的查询如下
select * from activation use keys ["xxxxx","yyyyy"];
findAll(Iterable)
使用底层视图(应该只索引与您的 Push
实体相对应的文档)但它确实提供了要限制的视图键,因此它应该已经相当有效率。
也就是说,如果您想执行直接使用文档键的 N1QL 查询,那么 @Query
仍然可以实现。由于您直接使用键,因此没有特别需要 WHERE 子句(您知道键对应于 Push
文档)。所以你可以像这样简单地做一个内联查询:
@Query("#{#n1ql.selectEntity} USE KEYS [\"xxxxx\", \"yyyyy\"]")
Collection<Push> myCustomFind();
如果您想动态构建键列表,则必须查找正确的语法,但我敢打赌使用 SpEL 是可行的。例如,从查询签名中的方法参数中取出两个键可以这样完成:
@Query("#{#n1ql.selectEntity} USE KEYS [\"#{[0]}\", \"#{[1]}\"]")
Collections<Push> findTwoByN1qlKey(String key1, String key2);
我想根据我使用 spring-data-couchbase
的列表集合检索所有存在的文档目前我正在使用
public interface PushRepository extends CrudRepository<Push,String>
和功能 pushRepository.findAll(phoneNumbers)
但我认为它正在检索所有这些然后进行过滤。
我如何 运行 N1QL 查询,以便我只检索键
上的文档 @Query("#{#n1ql.selectEntity} WHERE role = 'admin' AND #{#n1ql.filter}")
Collection<Push> findByIds();
我要运行的查询如下
select * from activation use keys ["xxxxx","yyyyy"];
findAll(Iterable)
使用底层视图(应该只索引与您的 Push
实体相对应的文档)但它确实提供了要限制的视图键,因此它应该已经相当有效率。
也就是说,如果您想执行直接使用文档键的 N1QL 查询,那么 @Query
仍然可以实现。由于您直接使用键,因此没有特别需要 WHERE 子句(您知道键对应于 Push
文档)。所以你可以像这样简单地做一个内联查询:
@Query("#{#n1ql.selectEntity} USE KEYS [\"xxxxx\", \"yyyyy\"]")
Collection<Push> myCustomFind();
如果您想动态构建键列表,则必须查找正确的语法,但我敢打赌使用 SpEL 是可行的。例如,从查询签名中的方法参数中取出两个键可以这样完成:
@Query("#{#n1ql.selectEntity} USE KEYS [\"#{[0]}\", \"#{[1]}\"]")
Collections<Push> findTwoByN1qlKey(String key1, String key2);