2016-03-20 7 views
1

Ich bin ziemlich neu zu pouchDB und couchDB. Ich habe versucht, pouchdb zu verwenden, finde aber einige Probleme.Wie man manuell erstellten Index in pouchdb findet

Ich habe einen Blick "test" und Quelle erstellt -

function(doc) { 
    emit(doc.name, doc.occupation); 
} 

enter image description here

und wenn ich diese laufen -

localDB.query('test/test').then(function (res) { 
    console.log(res); 
}).catch(function (err) { 
    console.log(err); 
}); 

Alles funktioniert wie erwartet.

Aber wenn ich pouchdb Fund versuchen -

localDB.find({ 
    selector: {name: 'kittens'} 
}).then(function (result) { 
    console.log(result); 
}).catch(function (err) { 
    console.log(err); 
}); 

Ich habe Fehler folgende -

Error: couldn't find a usable index. try creating an index on: name.


Wenn i-Index erstellen, indem

localDB.createIndex({ 
    index: { 
    fields: ['name'] 
    } 
}); 

nur dann Code pouchdb finden funktioniert. Aber wenn ich manuell einen Index erstellt habe (siehe Bild oben), tut es das nicht.

Jede Hilfe wird geschätzt. Danke im Voraus.

Antwort

1

pouchdb-find verwendet die neue Abfragesprache "Mango", die sich von map/reduce unterscheidet. Mango wird nur in CouchDB 2.0+ und PouchDB Server unterstützt, nicht CouchDB 1.x.

Also zu diesem Zeitpunkt müssen Sie entweder CouchDB 2.0 oder PouchDB Server mit pouchdb-find verwenden, wenn Sie möchten, dass es sowohl auf dem Client als auch auf dem Server funktioniert, oder Sie müssen stattdessen reguläres map/reduce verwenden und vermeiden pouchdb-finden.

+0

Danke für Ihre wertvollen Informationen. Wusste das nicht. Ich kann nur 1.6 Version in CouchDB beim Browsen von Windows sehen und ich dachte, es ist das neueste. Ich bevorzuge es, pouchdb in diesem Fall zu überspringen. – HADI

Verwandte Themen