MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

O MongoDB pode armazenar e manipular strings de UTF-8 com pontos de código fora do plano multilíngue básico?


Existem várias questões aqui:

1) Esteja ciente de que o MongoDB armazena todos os documentos usando o formato BSON. Observe também que a especificação BSON se refere a uma codificação de string UTF-8, não a uma codificação UTF-16.

Ref:http://bsonspec.org/#/specification

2) Todos os drivers, incluindo o driver JavaScript no shell do mongo, devem manipular corretamente as strings codificadas como UTF-8. (Se não, então é um bug!) Muitos dos drivers também lidam com UTF-16 corretamente, embora até onde eu saiba, UTF-16 não é oficialmente suportado.

3) Quando testei isso com o driver Python, o MongoDB pôde carregar e retornar com sucesso um valor de string que continha um par de códigos UTF-16 quebrado. No entanto, não consegui carregar um par de código quebrado usando o shell mongo, nem armazenar uma string contendo um par de código quebrado em uma variável JavaScript no shell.

4) mapReduce() é executado corretamente em dados de string usando um par de código UTF-16 correto, mas gerará um erro ao tentar executar mapReduce() em dados de string contendo um par de código quebrado.

Parece que o mapReduce() está falhando quando o MongoDB está tentando converter o BSON em uma variável JavaScript para uso pelo mecanismo JavaScript.

5) Eu arquivei o problema do Jira SERVER-6747 para este problema. Sinta-se à vontade para segui-lo e votar nele.