2017-10-13 9 views
0

先週までcom.couchbase.lite:couchbase-lite-android:2.0.0-DB008を使用していましたが、削除されているようです。アンドロイドスタジオのGradleにインポートしてください。最新バージョンのcouchbase com.couchbase.lite:couchbase-lite-android:2.0.0-158を使用しなければなりませんでした。このバージョンでCouchbase v2.0でドキュメントを入手

それはgetDocumentIdを持っていないので、私は、ドキュメントを取得することはできません()メソッド、我々はdatabase.getDocument(DOCID)を使用することはできません。行のすべてがNULLのデータを提供します

Query query = Query.select() 
      .from(DataSource.database(database)) 
      .where(
        Expression.property("RecordType").equalTo(100) 
      ); 

    try { 
     ResultSet rows = query.run(); 
     Result row; 
     while ((row = rows.next()) != null) { 

      row.hashCode() 

      tvResult.append("DocumentID: " + row.getString("documentID") + "\n" + 
        "Number: " + row.getString("Number") + "\n" + 
        "Date: " + row.getDate("Date") + "\n\n" 
      ); 

     } 
    } catch (Exception e) { 
     Log.e(LOG_TAG, e.toString()); 
     tvResult.setText(e.toString()); 
    } 

 Document document = new Document(); 
     document.setInt("RecordType", 100); 
     document.setString("Number", "1234567890"); 
     document.setDate("Date", new Date()); 
     document.setString("Text", "This is message text."); 

     try { 
      database.save(document); 
      tvResult.setText(document.getId()); 
     } catch (Exception e) { 
      e.printStackTrace(); 
      Log.e(LOG_TAG, e.toString()); 
      tvResult.setText(e.toString()); 
     } 

、これはドキュメントを取得する必要がありコードです:

これは私が保存した文書のコードです。

すべての文書とそのIDを取得する方法はありますか?

答えて

0

まず、私があなたであればアップグレードします。 DB-018がリリースされ、各バージョンで重大なバグが修正されています。しかし、DB-013が同期プロトコルを変更したので、サーバーをアップグレードする必要がありますので注意してください。

第2に、DB017またはDB018のいずれかで、取得するフィールドを指定する必要があります。そうでない場合は、検索結果は空の行です。これが意図されているのかバグなのか分かりません。 ""を指定すると、すべてのフィールドが表示されます。それはあなたに文書を与えることはありません、それはあなたに辞書を与えることに注意してください。

IDを取得する最も簡単な方法は、ドキュメント自体にIDを埋め込むことです。おそらくあなたが求めることができるいくつかのメタフィールドがありますが、私はそれが何であるか分かりません。

+0

IDのような情報を取得するために使用できる 'Meta'クラスがあります。 'Expression.meta()。id'またはこれに相当するものは、Selectに入れることができます。 – borrrden

関連する問題