Documentos y BSON
Los tipos de BSON, Extended JSON, el orden de comparación y la collation, como en MongoDB.
TeselaDB guarda documentos BSON con todos sus tipos: double, string, documento, array, binario, ObjectId,
booleano, fecha, null, expresión regular, JavaScript, int, long, Decimal128, Timestamp, MinKey y MaxKey.
Lo que escribe tu driver es lo que vuelve a leer, byte a byte.
Cómo funciona
El formato de los documentos y el orden en que se comparan los valores son los de MongoDB. Lo son también cuando un
documento viaja en JSON por la API REST o por mongoexport y cuando una consulta compara cadenas con collation en
el idioma de tus datos.
Extended JSON
Las herramientas que implementan JSON (mongoexport, mongoimport, la API REST) usan Extended JSON v2 en sus modos
canónico y relajado, con las mismas reglas que MongoDB.
Orden de comparación
Dos valores de tipos distintos se comparan por tipo y luego por valor, en el orden de MongoDB: MinKey, null,
números, cadenas, documentos, arrays, binarios, ObjectId, booleanos, fechas, Timestamp, expresiones regulares y
MaxKey. Los números se comparan por su valor aunque sean de tipos distintos.
Collation
Las comparaciones de texto con collation usan los mismos datos de Unicode que MongoDB 9.0 (ICU 57.1), así que el
orden y la igualdad de las cadenas con acentos, mayúsculas o en otros alfabetos coinciden con los de MongoDB.
db.clientes.find({ apellido: "lópez" }).collation({ locale: "es", strength: 1 });Qué implica para tu aplicación
Tu driver guarda y lee los mismos tipos que con MongoDB. Las consultas y los índices comparan los valores en el mismo
orden que MongoDB, y también las ordenaciones: una ordenación con collation da el mismo resultado que en MongoDB 9.0.
Límites
- Una cadena o un nombre de campo que no es UTF-8 válido se rechaza con
InvalidBSON(22). MongoDB lo guarda. - Un
findsinsortdevuelve los documentos en el orden de su clave dentro del rango, que puede ser distinto del de inserción. MongoDB no garantiza ningún orden sinsort; si tu aplicación necesita uno, pídelo consort.