Menu Docs
Página inicial do Docs
/ / /
Controlador Node.js
/ / /

Gerar Valores Personalizados para _id

Nesta página

  • Visão geral
  • Especifique uma fábrica de chaves primárias
  • Informações adicionais

Neste guia, você pode aprender como utilizar o driver MongoDB Node.js para gerar seus próprios valores do _id utilizando 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

  • Inserir ou atualizar em uma única operação

  • Retrieve Data

  • Modificar documentos

  • Insira documentos

Voltar

Insert