2016-07-08 9 views
0

Hallo Jungs Ich versuche, die folgende Anforderung zu verwenden:CouchDB Fehler mit StartKey & EndKey in einem Tastenfeld

curl http://localhost:5984/contacts/_design/country/_view/USA?startkey=[ "USA",{}]&endkey=["USA",{}].

Auf den folgenden Modus:

{ 
"_id": "_design/country", 
"_rev": "1-51488ea3931fdca9b9e2de84ef99c4d9", 
"language": "javascript", 
"views": { 
    "USA": { 
     "map": "function(doc) {\nif(doc.type == \"contact\") \nemit([doc.country,doc.name] , {name: doc.name, email: doc.email});\n}\n" 
    } 
} 
} 

und ich bekomme diese Fehlermeldung: [globbing] schlechter Bereich in Spalte 72

Können Sie mir helfen?

+0

Sie sollten nur die ', {}' für 'endkey' hinzufügen, lassen Sie sie aus dem' startkey' heraus. Außerdem würde ich Ihre URL in einfache Anführungszeichen setzen, damit Ihre Shell das '{}' nicht als glob-Muster ausgibt. (oder versuchen Sie Alexis 'Antwort zum Hinzufügen von '-g') –

+0

Was bedeutet' startkey = ["USA", {}] 'im Gegensatz zu' startkey = "USA" '? – ksav

+0

Ich habe die, {} aus dem startkey, aber ich bekomme den gleichen Fehler. Wenn ich startkey = "USA" verwende, bekomme ich {"error": "bad_request", "reason": "invalid_json"}. –

Antwort

1

Das Problem kommt von CURL Ich nehme an? Versuchen Sie folgendes:

-g/--globoff 
       This option switches off the "URL globbing parser". When you set this option, you can 
       specify URLs that contain the letters {}[] without having them being interpreted by curl 
       itself. Note that these letters are not normal legal URL contents but they should be 
       encoded according to the URI standard. 
+0

es funktioniert immer noch nicht –

+0

haben Sie versucht, Dominic Barnes Kommentar? –

+0

ja ich tat. Wie wäre es mit etwas wie startkey =% 22USA% 22? endkey ...? –

0

Codieren Sie einfach die Klammern, damit sich die Locke nicht beschweren. Und Sie würden wahrscheinlich einen anderen Startschlüssel (ohne die geschweiften Klammern) verwenden möchten, sonst werden Sie keine Ergebnisse erhalten. Die richtige Zeile:

curl http://localhost:5984/contacts/_design/country/_view/USA?startkey=%5B"USA"%5D&endkey=%5B"USA",%7B%7D%5D 
+0

vielen Dank –