Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Menu Docs
Página inicial do Docs
/ / /
Controlador Node.js
/

Gerar Valores Personalizados para _id

Neste guia, você aprenderá a usar o driver Node.js do MongoDB para gerar seus próprios valores _id usando a fábrica de chave primária.

A fábrica de chave primária permite que você crie identificadores exclusivos em seus documentos quando optar por não especificar um _id durante umaoperação de inserção . A fábrica de chave primária padrão gera valores ObjectId .

Observação

Operações upsert

O driver não usa a fábrica de chaves primárias para operações de upsert porque não consegue determinar se deve aplicar a fábrica de chaves primárias. Se você tiver especificado a fábrica de chaves primárias em uma operação de upsert e ela executar uma operação de inserção, o servidor gerará automaticamente um ObjectId para esse documento.

Se você quiser usar a fábrica de chaves primárias especificada, execute uma operação de localização e, em seguida, uma operação de atualização ou inserção.

Para especificar um factory de primary, aplique a opção pkFactory à sua instância MongoClient.

O seguinte trecho de código aplica a opção pkFactory para gerar valores _id do tipo uuid:

const { UUID } = require('bson');
...
const client = new MongoClient(uri, {
pkFactory: { createPk: () => new UUID().toBinary() }
});

Observação

Consistência de dados

Se você inserir um documento com um campo _id com um tipo diferente do tipo especificado pela fábrica da chave primária, você terá dados inconsistentes.

Por exemplo, se você executar a seguinte operação de inserção em uma fábrica de chave primária que gera tipos de uuid , seus valores _id conterão os tipos uuid e string :

myColl.insertOne({ _id: "user1388", ... });

Para saber mais sobre os tipos, interfaces e classes discutidos nesta seção, consulte os seguintes recursos:

  • PkFactory

  • O campo _id

  • Atualize documentos

  • Encontrar documentos

  • Modificar documentos

  • Insira documentos

Voltar

Configurar operações CRUD

Nesta página