As visualizações Map/Reduce são uma parte importante do Couchbase 2.0 e entender como consultá-las também é importante. Nossa documentação é excelente e pode ser encontrada aqui: http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-views.html
Uma das sutilezas é entender a ordenação de letras da Unicode Collation, que é diferente da Byte Order (como ASCII), com a qual estamos mais acostumados, pois ela é usada na maioria das linguagens de programação para ordenar strings por meio de comparações de strings.
Ordem de bytes (como ASCII)
Unicode Collation (opção padrão)
Observe que as letras são agrupadas, portanto, minúsculas e depois maiúsculas da mesma letra, em vez de um intervalo de todas as maiúsculas e depois um intervalo de todas as minúsculas.
Além disso, em outros idiomas, os caracteres acentuados seguem um princípio semelhante, assim:
Observe que todos os caracteres "a" e as variantes acentuadas ocorrer antes de A maiúsculo e suas variantes, que também ocorrem antes de qualquer caractere "b".
Exemplo de pedido
Na ordenação por ordem de bytes (como ASCII), as seguintes chaves indexadas seriam ordenadas nesta ordem:
No entanto, na Colação Unicode usada nas visualizações do Couchbase, essa é a ordem em que elas realmente ocorreriam:
Portanto, ao determinar sua tecla de início e chave final Para as cordas, é importante conhecer esse pedido!
Exemplos
Por exemplo, usando o banco de dados de amostra de cerveja que é empacotado com o Couchbase 2.0, e queria consultar Breweries by_name:
Cervejarias que começam com Y maiúsculo:
Retornará apenas aqueles que começam com Y maiúsculo!
Cervejarias que começam com y minúsculo ou Y maiúsculo:
Acontece que todos os que estão em letras maiúsculas são retornados apenas por causa dos dados fornecidos, mas incluiriam os que estão em letras minúsculas!
Cervejarias que começam apenas com y minúsculo:
Não deve retornar nenhum resultado com os dados fornecidos, porque todos eles são Y maiúsculos!
Este último é provavelmente o menos intuitivo se você vier de uma mentalidade ASCII de ordem de bytes! Espero que isso seja útil para quem está fazendo consultas de intervalo!
PS. Se estiver interessado no tópico Unicode Collation, você pode obter mais informações sobre ele nestes URLs:
http://www.unicode.org/reports/tr10/
http://userguide.icu-project.org/collation/customization#TOC-Default-Options
Observe que o final da tabela de agrupamento latino unicode é u02ad. É bom saber disso ao pesquisar até o fim. Às vezes, você pode ver uefff, que funciona, mas não é tecnicamente correto.