2017-03-03 6 views
0

私のデータをすべて取り込み、すべてのレコードをキー "sortDate"でグループ化する単純なビューを実行しようとしています。私はすべての例を辿って、すべての文書を何度も読んでいるように感じ、期待どおりに動作しません。 は、ここで私が作成していビューコードです:Couchbase Liteのビューの集計値はnullです(空)

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

キーが配列でないときにグループレベルを指定すると、CBLはreduce関数を使用して結果を集計します。指定していないので結果が得られません。ドキュメントから

:各行の

値プロパティは、集約されたすべての行の上にビューの低減機能を実行した結果であろう。ビューにreduce関数がない場合、値はありません。 (関数の縮小については、ビューのドキュメントを参照してください)

関連する問題