Couchbase Lite视图聚合值为空(空)

时间:2017-03-03 16:57:48

标签: ios swift couchbase-lite

我正在尝试做一个简单的视图,它通过键“sortDate”获取我的数据并将所有记录分组。我觉得我已经按照所有的例子,多次阅读所有文件,但它没有按预期工作。 这是我正在创建的视图代码:

    guard let database = database else { return }

    database.viewNamed("byDate").setMapBlock({ (doc, emit) in
        if let date = doc["sortDate"] as? String {
            emit(date, doc)
        }
    }, version: "8")


    let query = database.viewNamed("byDate").createQuery()
    query.groupLevel = 1
    query.descending = true


    do {
        let result = try query.run()
        print(result)
        while let row = result.nextRow() {
            print(row)
            print(row.value) //EMPTY
        }
    } catch {
        print("Failed to retrieve all documents for \(database.name) database")
    }

我的row.value为NULL,即使数据库中有多条记录,我的allDocs查询返回也没问题。

1 个答案:

答案 0 :(得分:1)

当键不是数组时指定grouplevel会导致CBL使用reduce函数聚合结果。你还没有指定一个,这就是你没有得到结果的原因。

来自文档:

  

每行的value属性是在聚合的所有行上运行视图的reduce函数的结果;或者如果视图没有reduce函数,那么没有值。 (有关缩减功能的信息,请参阅View文档。)