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 查询的主要内容,如果未能解决你的问题,请参考以下文章