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/
>

Reply via email to