2011-05-23 13 views
5

Por ejemplo:CouchDB view URL muestra: CouchDB: {"error": "not_found", "reason": "missing"} ... ¿Por qué?

  • Mi CouchDB está alojado en: example.com
  • El nombre de la base de datos CouchDB es: foo
  • el nombre de vista es: my_view

Así, cuando puse estos juntos para construir la URL, me sale:

La URL anterior muestra:

{"error":"not_found","reason":"missing"} 

¿Por qué se da este error?

El resultado esperado es que se enumeren los documentos correspondientes a la vista "my_view".

Más información:

Si vuelvo a visitar http://www.example.com/foo, me da la respuesta esperada:

{"db_name":"foo","... 

Si vuelvo a visitar http://www.example.com/foo/_design/my_view, me da la respuesta esperada:

{"_id":"_design/my_view","_rev":"... 

estoy utilizando CouchDB v1.0.2 en Windows 7/Chrome

contenido completo de mi documento de diseño (valores reales se muestra, no example.com)

{ 
    "_id":"_design/locations", 
    "_rev":"1-0f7fbdd2f5b4213591e171b6e546af3a", 
    "language":"javascript", 
    "views": { 
    "locations": { 
     "map":"function(doc) {\n emit(doc.type === \"location\" && doc.name);\n}" 
    } 
    } 
} 
+0

¿Cuál es la cont de su documento de diseño? –

+0

No debe tener sus URL de ejemplo bastante bien ... ¿No debería el tercero ser http://www.example.com/foo/_design/my_design_doc? –

Respuesta

10

La ruta URL correcta es /<db>/_design/<design>/_view/<view>.

Desde su verdadera URL dada en los comentarios, esto sería la URL correcta:

http://burritohunter.com/couchdb/burritohunter/_design/locations/_view/locations

Y de hecho lo devuelve la vista de lo esperado:

{"total_rows":2,"offset":0,"rows":[ 
{"id":"86bb31389b78aa5921f7a2f5c0000915","key":"Billy's","value":null}, 
{"id":"jimmys","key":"Jimmy's","value":null} 
]} 

Consulta sólo/_Diseño/ubicaciones devolverá el documento en sí:

{"_id":"_design/locations","_rev":"1-0f7fbdd2f5b4213591e171b6e546af3a","language":"javascript","views":{"locations":{"map":"function(doc) {\n emit(doc.type === \"location\" && doc.name);\n}"}}} 
+0

Obtengo 404 cuando intento tu camino. Pero esto funciona: http://www.example.com/foo/_design/my_view (donde "foo" es el nombre de db y "mi vista" es el nombre de la vista) – edt

+0

¿De verdad? Dado su documento de diseño, la URL http: // localhost: 5984//_design/locations/_view/locations (ajuste de la parte del host: puerto para adaptarse a sus circunstancias) debería funcionar. Eso es exactamente lo que te dice [Couch Wiki] (http://wiki.apache.org/couchdb/HTTP_view_API) que uses. –

+0

Se actualizó la respuesta de Matt con las URL reales de edt – JasonSmith