【问题标题】:CouchbaseLite 1.3.0 view querying id of doctypeCouchbaseLite 1.3.0 查看查询文档类型的 id
【发布时间】:2018-05-30 21:42:09
【问题描述】:

我正在为 ios 应用程序使用 couchbase lite 1.3.0。我将模型对象作为文档保存在数据库中。但是,我在保存时动态更改了“文档类型”。在使用 'docType' id 进行查询时,cbl 视图会发出错误/不匹配的 'docType'。无法弄清楚如何解决这个问题。

[view setMapBlock: MAPBLOCK({

    if ([doc[@"docType"] isEqual: @"docType1"])
 {
        emit(doc, nil);
    }
})
 version: @"1"];


CBLQuery* query = [view createQuery];

query.descending = NO;

CBLQueryEnumerator* result = [query run: &error];

for (CBLQueryRow* row in result) {

//The rows emitted doc of 'doctype2'

}

【问题讨论】:

  • Couchbase Lite 3.x 不存在,你的问题需要更多关于你在做什么的细节
  • 添加细节...
  • 您最近是否在未调整版本号的情况下更改了地图块?这可能会导致不正确的结果。另外,您从哪里获得 3.0.1 号码? Couchbase 最新发布的版本是 1.4.1。
  • @Borrden。如果我每次都新创建视图,它会解决吗?即删除现有的?
  • 对不起版本

标签: couchbase-lite couchbase-view


【解决方案1】:

我认为更改 docType 没问题,问题是您的 map 函数是针对不鼓励的查询参数硬编码的,而且您 emit 也是一个完整的文档。

我可以用这个来实现你想要做的事情:

[view setMapBlock: MAPBLOCK({
    emit(doc[@"docType"], nil);
})
version: @"1"];

然后使用docType1作为参数进行查询,如果需要doc只需设置preFetch totrue`

我知道这会给你想要的东西带来“冗余”,但我认为它可以解决问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-24
    • 1970-01-01
    • 2019-04-24
    • 2017-02-20
    • 2018-07-06
    • 2019-12-28
    • 1970-01-01
    • 2018-04-01
    相关资源
    最近更新 更多