Comment obtenir tous les documents du seau de données en utilisant c #?

voix
4

Comment puis-je obtenir tous les documents du seau de données?

J'ai essayé un échantillon, mais je suis en mesure d'obtenir seulement un document spécifique. Voici mon code:

CouchbaseClient oclient;

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

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

Comment obtenir tous les documents?

var results = oclient.? //what should i use here to get all documents
Créé 25/10/2012 à 13:18
source utilisateur
Dans d'autres langues...                            


3 réponses

voix
5

En utilisant Couchbase Server 2.0, vous pouvez utiliser une vue d'obtenir tous les documents. Votre point de vue ressemblerait à ceci:

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

Ce point de vue vous donnera accès à tous les IDs (id est toujours inclus dans les résultats non-vue réduite requête).

Pour en savoir plus sur les vues et vues dans l' interrogation .NET, consultez http://blog.couchbase.com/strongly-typed-views-net-client-library .

Créé 25/10/2012 à 15:03
source utilisateur

voix
0

Vous aurez besoin de créer une vue Couchbase qui émet id document (meta.id).

Ou utiliser la vue existante qui émet chaque enregistrement.

alors

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

Vous aurez réponse du genre

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

Le champ « id » contient la clé de document.

Vous aurez besoin de paginer sur les résultats. http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-views-writing-querying-pagination.html

Créé 10/02/2013 à 16:32
source utilisateur

voix
0

Vous ne pouvez pas obtenir tous les documents. Créer une valeur entière atomique « constante » qui sera countercomme ceci:

CouchbaseClient oclient;

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

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

Lorsque vous ajoutez des documents à godet ne pas les ajouter avec un peu documentid (je suppose que vous obtenez cette forme de base de données SQL ou quelque chose) , mais les faire avec countercomme ceci:

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

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

Maintenant , vous pouvez simplement utiliser la forboucle à oSourceBucket.Get(...)tous les éléments jusqu'à ce que la MYCOUNTERvaleur. Je ne sais pas si une nouvelle version de Couchbase 2.0 aura tendance , mais obtient la version stable actuelle (1.8.1 je pense) ne permet que la clé exacte obtient.

Remeber c'est le magasin de valeurs-clés, pas SQL :)

De plus , il est MultiGeten Couchbase , mais dans la dernière version stable du client .NET il n'existe pas , mais il est utilisé sous le capot comme for...boucle avec plusieurs Get-s.

Créé 25/10/2012 à 13:40
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more