nativescript-couchbase-plugin 查询
Posted
技术标签:
【中文标题】nativescript-couchbase-plugin 查询【英文标题】:nativescript-couchbase-plugin querying 【发布时间】:2020-06-17 07:36:12 【问题描述】:我正在尝试使用nativescript-couchbase-plugin。 这是我的代码:
whereArray.push( property: "type_id", comparison: "equalTo", value: typeId );
return itemsDb.query(
select: [],
where: whereArray,
order: [property: "rating", direction: "desc"],
limit: this.PAGE_SIZE,
offset: page * this.PAGE_SIZE
);
一切正常:where 子句中的条件、排序、限制和偏移。 但我想为我的病情添加一些新的东西,我正在尝试这样做:
whereArray.push( property: "title", comparison: "like", value: "some name");
or
whereArray.push( property: "filters", comparison: "in", value: [1,2,3]);
而且这些情况都行不通。他们都不是。唯一有效的是第一个带有 type_id
的那么问题来了——如何使用where数组来查询对应的数据?
数据样本:
"type_id": 2,
"title": "some name",
"regionId": 372,
"uid": 16177,
"filters": [
1,
2,
3
]
,
附:原始存储库中有一个issue。但它根本没有任何活动。
【问题讨论】:
您能否也发布一些示例数据/文档以帮助我们更好地理解查询? 我已经用我的一些示例数据更新了帖子。 【参考方案1】:我必须同意插件文档可能会更好。但是如果你仔细阅读 TypeScript 声明,你会发现你的代码有问题。
添加多个 where 条件时,必须包含逻辑运算符。
import
Couchbase,
QueryLogicalOperator,
QueryComparisonOperator
from "nativescript-couchbase-plugin";
const database = new Couchbase("my-database");
// Insert docs for testing
const documentId = database.createDocument(
type_id: 2,
title: "some name",
regionId: 372,
uid: 16177,
filters: [1, 2, 3]
);
console.log(documentId);
// Query
const results = database.query(
select: [],
where: [
property: "type_id",
comparison: "equalTo",
value: 2,
logical: QueryLogicalOperator.AND
,
property: "filters",
comparison: "in",
value: [1, 2, 3]
],
order: [ property: "rating", direction: "desc" ],
limit: 10
);
console.log(results);
【讨论】:
我已经添加了。我用逻辑运算符解决了我的问题,但没有用子查询:我只想在具有字段过滤器的文档中搜索 [1]:[1、2、3]。另外我还没有找到通过这个插件使用模糊搜索的方法。我尝试了带 * 和不带 * 的 'like' 运算符。 我不确定我明白你的意思。添加逻辑运算符后,您的 OP 中的查询将起作用。 在 Couchbase 中搜索子查询怎么样? 注意:逻辑运算符必须在第二个条件! (至少对我来说,只能这样工作 - 在 Nativescript-vue - android 上)以上是关于nativescript-couchbase-plugin 查询的主要内容,如果未能解决你的问题,请参考以下文章