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
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
| Valor | Responde cuando |
|---|---|
w: 1 | La 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.