Overview
En esta guía, puedes aprender a utilizar el driver de MongoDB Node.js para generar tus propios _id valores usando la fábrica de claves primarias.
La fábrica de llave primaria permite crear identificadores únicos en tus documentos cuando eliges no especificar un _id durante un
operación de inserción. La fábrica de claves primarias por defecto genera valores de 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 la fábrica de claves principal especificada, realice una operación de búsqueda y luego una operación de actualización o inserción.
Especificar una fábrica de claves principales
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 inserta un documento con un campo _id con un tipo diferente al especificado por la fábrica de claves principal, tendrá 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: