4

データバケットからすべてのドキュメントを取得するにはどうすればよいですか?

サンプルを試しましたが、特定のドキュメントしか取得できません。これが私のコードです:

CouchbaseClient oclient;

oclient= new CouchbaseClient("vwspace", "");// data bucket name

var results = oclient.Get("205");// document id

すべてのドキュメントを取得するにはどうすればよいですか?

var results = oclient.? //what should i use here to get all documents
4

3 に答える 3

5

Couchbase Server 2.0 を使用すると、ビューを使用してすべてのドキュメントを取得できます。ビューは次のようになります。

function (doc, meta) {
   emit(null, null);
}

このビューでは、すべての ID にアクセスできます (ID は常に非縮小ビューのクエリ結果に含まれます)。

.NET でのビューとクエリ ビューの詳細については、http://blog.couchbase.com/strongly-typed-views-net-client-libraryを参照してください。

于 2012-10-25T14:03:06.793 に答える
0

ドキュメント ID ( meta.id ) を出力するcouchbaseビューを作成する必要があります。

または、すべてのレコードを発行する既存のビューを使用します。

それで

http://HOST:8092/YOURBUCKETNAME/_design/YOURDESIGNDOCNAME/_view/YOURVIEWNAME?reduce=false&limit=10

次のような結果が得られます

{"total_rows":1321085,"rows":[
{"id":"key1","key": ... ,"value": ... },
{"id":"key2","key": ... ,"value": ... },
{"id":"key3","key": ... ,"value": ... },
...
]
}

「id」フィールドにはドキュメント キーが含まれます。

結果を改ページする必要があります。 http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-views-writing-querying-pagination.html

于 2013-02-10T15:32:52.357 に答える
0

すべての書類を取得することはできません。counter次のような「一定の」原子整数値を 1 つ作成します。

CouchbaseClient oclient;

oclient= new CouchbaseClient("vwspace", "");// data bucket name

ulong results = (ulong)oSourceBucket.Get("MYCOUNTER");// counter (integer incremental value)

ドキュメントをバケットに追加するときは、documentId を付けて追加しないでください (SQL データベースなどから取得すると思います) counter。次のように作成します。

results = oSourceBucket.Increment("MYCOUNTER", results, 1);// counter (integer incremental value)

oSourceBucket.Store(StoreMode.Add, "MYITEM." + results.toString(), myNewObjectToStore);

これで、値までのすべてのアイテムforにループを使用できます。Couchbase 2.0 の新しいバージョンでパターン取得が行われるかどうかはわかりませんが、現在の安定版 (1.8.1 だと思います) では正確なキー取得のみが許可されます。oSourceBucket.Get(...)MYCOUNTER

これはSQLではなくKEY-VALUEストアであることを思い出してください:)

またMultiGet、Couchbase にもありますが、.NET クライアントの最新の安定バージョンには存在しませんが、複数の-sを使用したfor...ループのように内部で使用されます。Get

于 2012-10-25T12:40:49.693 に答える