I would add that there is a view option to make them sort raw if that's desired. But no option to make _all_docs sort with ICU.
On Tue, Sep 15, 2015 at 6:00 AM, Jan Lehnardt <[email protected]> wrote: > Hi Jonas, > > I see @rnewson has replied to you on IRC already, just closing this out for > posterity. > > _all_docs is sorted “raw”, that is by Erlang binary comparison rules (think > ascii code points, but not quite). > > Views are sorted using the ICU library, which defines sorting according to > the natural language specified in your locale. > > Best > Jan > -- > > >> On 15 Sep 2015, at 12:54, Jonas Weber <[email protected]> wrote: >> >> Hi everybody, >> >> please take a look at the following transcript. It creates a database, >> inserts some documents and queries them. My issue is the sorting of >> _all_docs vs the result of the view: In the first case, hello leads, while >> in the second case Hello comes first: >> >> $ curl http://localhost:5984/ >> >> {"couchdb":"Welcome","uuid":"a96430b1b7736a09cf6433604a030bd2","version":"1.6.1","vendor":{"name":"The >> Apache Software Foundation","version":"1.6.1"}} >> $ curl -X PUT http://localhost:5984/test-ids >> {"ok":true} >> $ curl -X POST http://localhost:5984/test-ids/_bulk_docs >> -HContent-type:application/json -d'{"docs": [{"_id": "Hello"}, {"_id": >> "hello"}, {"_id": "_design/tst", "views": {"ids": {"map":"function (doc) { >> emit(doc._id, 1); }"}}}]}' >> >> [{"ok":true,"id":"Hello","rev":"1-967a00dff5e02add41819138abb3284d"},{"ok":true,"id":"hello","rev":"1-967a00dff5e02add41819138abb3284d"}, >> >> {"ok":true,"id":"_design/tst","rev":"1-e267a159c1b990605f05150480ccc754"}] >> $ curl http://localhost:5984/test-ids/_all_docs >> {"total_rows":3,"offset":0,"rows":[ >> >> {"id":"Hello","key":"Hello","value":{"rev":"1-967a00dff5e02add41819138abb3284d"}}, >> >> {"id":"_design/tst","key":"_design/tst","value":{"rev":"1-e267a159c1b990605f05150480ccc754"}}, >> >> {"id":"hello","key":"hello","value":{"rev":"1-967a00dff5e02add41819138abb3284d"}} >> ]} >> $ curl http://localhost:5984/test-ids/_design/tst/_view/ids >> {"total_rows":2,"offset":0,"rows":[ >> {"id":"hello","key":"hello","value":1}, >> {"id":"Hello","key":"Hello","value":1} >> ]} >> $ >> >> When I do the same in PouchDB, the results are different (but consistent): >> >> var db = new PouchDB('test-ids'); >> db.replicate.from('http://localhost:5984/test-ids') >> .then(function () { return db.allDocs(); }) >> .then(function (docs) { console.log(JSON.stringify(docs.rows)); return >> db.query('tst/ids'); }) >> .then(function (docs) { console.log(JSON.stringify(docs.rows)); }) >> >> gives >> >> [{"id":"Hello","key":"Hello","value":{"rev":"1-967a00dff5e02add41819138abb3284d"}},{"id":"_design/tst",.....},{"id":"hello","key":"hello","value":{"rev":"1-967a00dff5e02add41819138abb3284d"}}] >> [{"key":"Hello","id":"Hello","value":1},{"key":"hello","id":"hello","value":1}] >> >> Is this behaviour a bug or a feature? The documentation for views says: >> • Text (case sensitive, lowercase first) >> Best regards, >> Jonas Weber > > -- > Professional Support for Apache CouchDB: > http://www.neighbourhood.ie/couchdb-support/ >
