Overview
En esta guía, puedes aprender cómo usar el driver de MongoDB Node.js para generar tus propios valores _id usando la fábrica de llave primaria.
La fábrica de llaves primarias permite crear identificadores únicos en los documentos cuando se elige no especificar un _id durante una operación de inserción. La fábrica de claves primarias por defecto genera valores ObjectId.
Nota
Operaciones de actualización e inserción
El driver no usa la fábrica de llaves primarias para operaciones de inserción porque no puede determinar si debe aplicar la fábrica de llaves primarias. Si especificas la fábrica de llave primaria en una operación upsert y realiza una inserción, el servidor autogenera una ObjectId para ese documento.
Si desea utilizar su fábrica de llave primaria especificada, realice una operación de búsqueda, luego una actualización o una inserción.
Especificar una fábrica de llaves primarias
Para especificar una fábrica de llave primaria, aplica la opción pkFactory a tu instancia MongoClient.
El siguiente fragmento de código aplica la opción pkFactory para generar valores _id del tipo uuid:
const { UUID } = require('bson'); ... const client = new MongoClient(uri, { pkFactory: { createPk: () => new UUID().toBinary() } });
Nota
Coherencia de datos
Si insertas un documento con un campo _id con un tipo diferente al tipo especificado por la factoría de llave primaria, entonces tendrás datos inconsistentes.
Por ejemplo, si ejecutas la siguiente operación de inserción en una fábrica de claves primarias que genera uuid tipos, tus valores de _id contendrán tanto los tipos uuid como string:
myColl.insertOne({ _id: "user1388", ... });
Información Adicional
Para obtener más información sobre los tipos, las interfaces y las clases discutidos en esta sección, consulta los siguientes recursos: