Couchbase lite Couchbase Lite中的IN运算符

Couchbase lite Couchbase Lite中的IN运算符,couchbase-lite,n1ql,Couchbase Lite,N1ql,我需要询问一下 从`sample`中选择* 这将转换为QueryBuilder,如下所示 QueryBuilder .select(SelectResult.all()) .from(DataSource.database(“示例”)) .其中(表达式.属性(“id”) .在([ 表达式.string(“123”), 表达式.string(“456”) ]) ) 这不起作用,返回空的结果列表,你知道吗?我从你的评论中看到你的代码起作用了(它是假阴性)。然而,我将分享一种方法,如果您需要对多个

我需要询问一下

从`sample`中选择*
这将转换为
QueryBuilder
,如下所示

QueryBuilder
.select(SelectResult.all())
.from(DataSource.database(“示例”))
.其中(表达式.属性(“id”)
.在([
表达式.string(“123”),
表达式.string(“456”)
])
)

这不起作用,返回空的结果列表,你知道吗?

我从你的评论中看到你的代码起作用了(它是假阴性)。然而,我将分享一种方法,如果您需要对多个通配符(
%
)表达式使用
like
操作符,这种方法可能会很有用。样本采用Kotlin语言:

val list=listOf(“123”、“456”)
val items=list.map{Meta.id.like(Expression.string(“$it-%”)).toMutableList()
val whereExpression=项目
.fold(items.removeAt(0)){chain,next->chain.or(next)}
val query=QueryBuilder.select(
选择result.expression(Meta.id),
SelectResult.all()
).from(DataSource.database(this.db)).where(whereExpression)
val results=query.execute()
val resultList=results.allResults()

您能说说为什么您认为这不起作用吗?您是否有id=“123”或“456”Uhm。。。看来是我的错。该语句按预期工作,我不知怎的未能成功保存数据。。。谢谢你的评论!