Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Generar valores personalizados para _id

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.

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", ... });

Para obtener más información sobre los tipos, las interfaces y las clases discutidos en esta sección, consulta los siguientes recursos:

  • pkFactory

  • El campo _id

  • Update Documents

  • Buscar documentos

  • Modificar documentos

  • Insertar documentos

Volver

Configurar las operaciones CRUD

En esta página