2016-03-03 1 views
0

J'ai une fonction de carteSkipping un paramètre clé dans la fonction carte de Couchbase

function (doc, meta) { 
    emit([doc.Marks,doc.Acc_no],doc.Type); 
} 

Dans ce quand j'envoie startkey et endkey comme suit

startkey = [13] 
endkey = [86] 

Je reçois tous les documents ayant des notes entre 13 et 86 comme prévu indépendamment de Acc_No.

Maintenant, ce que je suis en train est une question comme celle

startkey =[,1] 
endkey = [,5] 

Ce que je veux est tous les documents ayant Acc_no entre 1 et 5 quels que soient leurs marques mais je reçois erreur dans ce type de requête. Comment puis-je accomplir mon deuxième type de requête sans faire de nouvelle vue?

+0

Vous ne devez pas ajouter cette deuxième question ici. – Kerr

Répondre

3

Non, vous ne pouvez pas faire cela. Si vous créez une clé, en tant que tableau ici, vous devez utiliser le "premier N", vous pouvez ignorer les derniers objets du tableau, mais vous devez les spécifier depuis le début jusqu'à un certain point. Donc, vous pouvez passer seulement de la droite, pas de la gauche.

Pour atteindre votre objectif ici, vous avez 2 choix:

  1. écrivent une autre vue sans les marques.
  2. pensez à un meilleur séquençage de votre clé qui vous conviendra le mieux.

Pour plus d'informations, reportez-vous aux documentations.

http://docs.couchbase.com/admin/admin/Views/views-querying.html

+0

Cela fait longtemps depuis cette question mais j'ai encore 1 doute concernant les paramètres de saut. Pouvons-nous également ignorer les paramètres du côté droit lors de l'interrogation? Il semble que je ne suis pas capable de le faire. –

+0

Que voulez-vous dire par ne pas pouvoir le faire? N'ajoutez simplement pas les paramètres de la main droite. avez-vous un exemple? –

+0

Oui édité le poste pour ajouter un exemple que j'utilise –