Azure Spring Data Cosmos DB嵌套参数查询及嵌套字段att4检索实现方法
Azure Spring Data Cosmos DB 嵌套字段查询实现方案
完全可以针对嵌套字段att4执行检索操作,Azure Spring Data Cosmos DB提供了3种常用的可直接落地的实现方式,具体如下:
- 方式1:使用派生查询方法(最便捷)
只需要在对应的Repository接口中按照嵌套字段层级定义查询方法即可,字段名之间用下划线连接即可映射嵌套结构。示例代码:
调用该方法时传入要检索的att4值,即可直接返回所有匹配的文档。// 假设你的实体类名为Item,att3对应嵌套对象类型为SubItem List<Item> findByAtt3_Att4(String att4Value); - 方式2:使用@Query注解自定义SQL
如果查询逻辑更复杂,可以直接写Cosmos DB的原生查询语句,嵌套字段直接用点符号访问即可。示例代码:@Query(value = "SELECT * FROM c WHERE c.att3.att4 = @att4Val") List<Item> queryByNestedAtt4(@Param("att4Val") String att4Value); - 方式3:使用Criteria API动态构建查询
适合查询条件需要动态拼接的场景,同样支持嵌套字段的路径拼接。示例代码:Criteria criteria = Criteria.where("att3.att4").is(targetAtt4Value); Query query = new Query(criteria); List<Item> items = cosmosTemplate.find(query, Item.class, "你的容器名");
注意:如果嵌套字段对应的是数组结构,查询方式需要调整为使用
ARRAY_CONTAINS等函数,本场景下att3是对象类型,直接用路径访问即可。
内容的提问来源于stack exchange,提问作者Aniket Paul
相关产品推荐
相关产品推荐

