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 exactamente lo que vuelve a leer.

Extended JSON

Las herramientas que hablan 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.

JavaScript
db.clientes.find({ apellido: "lópez" }).collation({ locale: "es", strength: 1 });

Lo que cambia respecto a MongoDB

  • Una cadena o un nombre de campo que no es UTF-8 válido se rechaza con InvalidBSON (22). MongoDB lo guarda.
  • Un find sin sort devuelve los documentos en el orden de su clave dentro del rango, no en el de inserción. MongoDB no garantiza ningún orden sin sort; si tu aplicación necesita uno, pídelo con sort.