我可以从条件数组在Couchbase Lite swift运行时中创建Where子句吗?
我正在使用Couchbase Lite 2.6, 我想在运行时构建我的查询,我通过一个API收到一个条件列表([“Key”:“value”]),我需要使用该API过滤我的本地数据库并显示这些值 使用QueryBuilder有什么方法可以做到这一点吗? 我在Couchbase论坛上发现了一个类似的讨论,但它已经很旧了,所以解决方案不再有效我可以从条件数组在Couchbase Lite swift运行时中创建Where子句吗?,swift,couchbase,couchbase-lite,n1ql,Swift,Couchbase,Couchbase Lite,N1ql,我正在使用Couchbase Lite 2.6, 我想在运行时构建我的查询,我通过一个API收到一个条件列表([“Key”:“value”]),我需要使用该API过滤我的本地数据库并显示这些值 使用QueryBuilder有什么方法可以做到这一点吗? 我在Couchbase论坛上发现了一个类似的讨论,但它已经很旧了,所以解决方案不再有效 让我给你举一个android的例子,你可以用swift来推断: String name = "foo"; String surname = "b
让我给你举一个android的例子,你可以用swift来推断:
String name = "foo";
String surname = "bar";
Expression ex = Expression.property("type").equalTo(Expression.string("user"));
if(name != null) {
ex.and(Expression.property("name").equalTo(Expression.string(name)));
}
if(surname != null) {
ex.and(Expression.property("surname").equalTo(Expression.string(surname)));
}
Query query = QueryBuilder
.select(SelectResult.all())
.from(DataSource.database(DatabaseManager.getDatabase()))
.where(ex)
.limit(Expression.intValue(10));
让我给你举一个android的例子,你可以用swift来推断:
String name = "foo";
String surname = "bar";
Expression ex = Expression.property("type").equalTo(Expression.string("user"));
if(name != null) {
ex.and(Expression.property("name").equalTo(Expression.string(name)));
}
if(surname != null) {
ex.and(Expression.property("surname").equalTo(Expression.string(surname)));
}
Query query = QueryBuilder
.select(SelectResult.all())
.from(DataSource.database(DatabaseManager.getDatabase()))
.where(ex)
.limit(Expression.intValue(10));
因为这个问题是针对Swift的,所以最好用Swift给出答案: 这与@deniswsrosa提到的代码相同,但在siwft中
let name = "foo";
let surname = "bar";
let ex = Expression.property("type").equalTo(Expression.string("user"));
if(name != nil) {
ex.and(Expression.property("name").equalTo(Expression.string(name)));
}
if(surname != nil) {
ex.and(Expression.property("surname").equalTo(Expression.string(surname)));
}
let query = QueryBuilder
.select(SelectResult.all())
.from(DataSource.database(DatabaseManager.getDatabase()))
.where(ex)
.limit(Expression.int(10));
因为这个问题是针对Swift的,所以最好用Swift给出答案: 这与@deniswsrosa提到的代码相同,但在siwft中
let name = "foo";
let surname = "bar";
let ex = Expression.property("type").equalTo(Expression.string("user"));
if(name != nil) {
ex.and(Expression.property("name").equalTo(Expression.string(name)));
}
if(surname != nil) {
ex.and(Expression.property("surname").equalTo(Expression.string(surname)));
}
let query = QueryBuilder
.select(SelectResult.all())
.from(DataSource.database(DatabaseManager.getDatabase()))
.where(ex)
.limit(Expression.int(10));
请说明否决该问题的原因?请说明否决该问题的原因?