MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Czy MongoDB może przechowywać i manipulować ciągami znaków UTF-8 z punktami kodowymi poza podstawową płaszczyzną wielojęzyczną?

Jest tu kilka problemów:

1) Należy pamiętać, że MongoDB przechowuje wszystkie dokumenty w formacie BSON. Należy również pamiętać, że specyfikacja BSON odnosi się do kodowania ciągu znaków UTF-8, a nie kodowania UTF-16.

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

2) Wszystkie sterowniki, w tym sterownik JavaScript w powłoce mongo, powinny poprawnie obsługiwać łańcuchy zakodowane jako UTF-8. (Jeśli nie, to jest to błąd!) Wiele sterowników obsługuje również poprawnie UTF-16, chociaż z tego, co wiem, UTF-16 nie jest oficjalnie obsługiwany.

3) Kiedy testowałem to ze sterownikiem Pythona, MongoDB mógł pomyślnie załadować i zwrócić wartość ciągu, która zawierała uszkodzoną parę kodów UTF-16. Jednak nie mogłem załadować uszkodzonej pary kodów za pomocą powłoki mongo, ani nie mogłem przechowywać łańcucha zawierającego zepsutą parę kodów w zmiennej JavaScript w powłoce.

4) mapReduce() działa poprawnie na danych ciągu, używając poprawnej pary kodów UTF-16, ale wygeneruje błąd podczas próby uruchomienia mapReduce() na danych ciągu zawierających uszkodzoną parę kodów.

Wygląda na to, że funkcja mapReduce() nie działa, gdy MongoDB próbuje przekonwertować BSON na zmienną JavaScript do użytku przez silnik JavaScript.

5) Zgłosiłem dla tego wydania Jira wydanie SERVER-6747. Śledź go i zagłosuj.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Potrzebujesz porady, aby zaprojektować bazę danych w mongodb za pomocą mongoose

  2. mangusta usuwa obiekt z zagnieżdżonej tablicy

  3. Meteor:różnica między nazwami kolekcji, zmiennych, publikacji i subskrypcji?

  4. Czy metoda AsQueryable odeszła w nowym sterowniku Mongodb C# 2.0rc?

  5. Import zbiorczy MongoDB za pomocą mongoimport z folderu Windows