我正在尝试做一个简单的视图,它通过键“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查询返回也没问题。
答案 0 :(得分:1)
当键不是数组时指定grouplevel会导致CBL使用reduce函数聚合结果。你还没有指定一个,这就是你没有得到结果的原因。
来自文档:
每行的value属性是在聚合的所有行上运行视图的reduce函数的结果;或者如果视图没有reduce函数,那么没有值。 (有关缩减功能的信息,请参阅View文档。)