如何用Couchbase Lite的QueryBuilder查询嵌套JSON属性?
Couchbase Lite QueryBuilder 嵌套数据查询实现
针对你提供的文档结构,以下是三个查询场景对应的QueryBuilder实现(以Java为例):
场景1:查询user.id等于1的文档
Query query = QueryBuilder.select(SelectResult.all()) .from(DataSource.database(database)) .where(Expression.property("user.id").equalTo(Expression.intValue(1)));
场景2:查询user.metadata.anotherId等于2的文档
Query query = QueryBuilder.select(SelectResult.all()) .from(DataSource.database(database)) .where(Expression.property("user.metadata.anotherId").equalTo(Expression.intValue(2)));
场景3:查询user.metadata.aRandomArray包含WorksAsWell的文档
使用Couchbase Lite的ArrayFunction.contains方法判断数组是否包含指定元素:
Query query = QueryBuilder.select(SelectResult.all()) .from(DataSource.database(database)) .where(ArrayFunction.contains( Expression.property("user.metadata.aRandomArray"), Expression.stringValue("WorksAsWell") ));
关键说明
- 嵌套属性直接通过
.连接完整路径即可访问,比如user.metadata.anotherId - 数组包含判断必须使用
ArrayFunction.contains,无法直接用equalTo匹配单个元素
内容的提问来源于stack exchange,提问作者user121095
相关产品推荐
相关产品推荐

