CRUD

Inserta, consulta, actualiza y borra documentos, con los write y read concerns de MongoDB.

Las operaciones de lectura y escritura son las de MongoDB, con los mismos operadores de consulta, proyección y actualización. Cualquier nodo recibe la petición y la lleva al rango que contiene cada documento.

Escribir y leer

JavaScript
db.pedidos.insertMany([
  { cliente: "Ana Ruiz", total: 149.5, estado: "pagado" },
  { cliente: "Luis Gil", total: 32, estado: "pendiente" },
]);

db.pedidos.find({ total: { $gt: 100 } }, { cliente: 1, total: 1 });

db.pedidos.updateOne({ cliente: "Luis Gil" }, { $set: { estado: "pagado" }, $inc: { intentos: 1 } });

db.pedidos.deleteMany({ estado: "cancelado" });

bulkWrite, findAndModify y los upserts funcionan igual. Las escrituras y lecturas reintentables de los drivers están activas.

Write concern

ValorResponde cuando
w: 1La escritura está en el log del líder del rango.
w: "majority"La mayoría de las réplicas del rango la tienen.

Read concern y lecturas en réplicas

readConcern local y available devuelven siempre datos confirmados por la mayoría: no ves escrituras que todavía podrían perderse. Con readPreference secondary o nearest, el router elige la réplica más cercana cuya marca cerrada cubre la lectura; el líder publica esa marca 3 segundos por detrás de su reloj.

Validación de esquema

$jsonSchema y los validadores de colección se comprueban en cada escritura, con validationLevel y validationAction como en MongoDB.