2010-10-18 7 views
0

J'essaie de transmettre un argument (tableau) pour la mise à jour, mais semble CouchDB incapable de les analyser correctement.CouchDB tableau passant

curl -X PUT http://localhost:5984/mydb/_design/timeline/_update/hello/container-1?tags\\[\\]=1\&tags\\[\\]=2 

dans CouchDB:

"updates": { 
     "hello": "function(doc,request){if(!doc){doc={_id:request.id};}for(i in request.query){doc[i]=request.query[i];}return[doc,JSON.stringify(request.query)];}" 
    } 

Dans ce cas, seule la dernière valeur transmise retournée, comme:

{"tags[]":"2"} 

On dirait qu'il ne comprend pas un tableau standard qui passe. Comment passer tableau et l'analyser dans CouchDB?

Répondre

1

OK, je l'ai trouvé fonctionnalité non documentée here, qui fonctionne bien pour moi:

?param=1&tags=[1, 2, 3]&.... 
+0

Ce lien ne semble pas pointer vers des informations CouchDB. Quelqu'un peut-il expliquer cette «fonctionnalité non documentée» plus en détail? –

+1

Il y a un lien de 7 ans qui ne fonctionne plus. Je pense que j'ai changé de toute façon maintenant dans CouchDB. –

+0

Je viens de commencer à expérimenter avec le passage de tableaux dans le corps d'une requête à un gestionnaire de mise à jour et j'ai commencé à le voir fonctionner. Encore besoin de faire beaucoup de tests, etc., mais cela semble la meilleure solution jusqu'à présent. –