2

5 つのドキュメントを含む単純なデータバケットがあり、CSharp ドライバーを使用して Web アプリケーションを介してデータを追加しています。元:{'key':'Version', 'value': '1.0'}

UI または Couchbase コンソールからリスト全体を要求すると、1 回目ですべての結果が得られず、新しいドキュメントを追加した後の 2 回目の要求で常に結果が得られます。これはcouchbaseビューのデフォルトの動作ですか? バックグラウンドでmemcacheを使用していることを理解しています。

それがデフォルトの動作である場合、このシナリオをどのように処理すればよいですか? すべてのアプリケーションはリアルタイムのデータを必要とするため、またはここで何か間違ったことをしていますか?


問題はプロダクション ビューにあることに気付きました。上記の問題は、開発ビューではないプロダクション ビューでのみ発生します。製品ビューは、動作方法が開発ビューとは異なりますか?

4

2 に答える 2

3

ドキュメントの追加は、通常非同期操作です。これは、(言語固有の SDK で) 関数呼び出しが返されたときに、ドキュメントが実際には Couchbase に挿入されていないことを意味します。挿入のリクエストに似ています。

CSharpDriver についてはほとんどわかりませんが、Java 用の Couchbase-SDK の例を挙げることができます。以下をあなたの言語にマッピングすることについて少し検索する必要があります。典型的な例は次のとおりです。

//Send a **request** to insert, typically spawns a new thread to poll for result.
final OperationFuture<Boolean> setOp = m_couchbaseClient.set(sKey, 0, sValue);

// More processing

//Wait on insertion. Use <FutureObject>.get()
try {
    return setOp.get().booleanValue();
    //when the above call returns we can be sure that insertion has happened/failed.
} catch (InterruptedException e) {
} catch (ExecutionException e) {
}
于 2013-05-16T18:11:44.377 に答える
2

表示オプションで「stale=false」を試してください。インデックスの更新に関するドキュメントを次に示します

于 2013-05-21T16:51:50.707 に答える