Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
MongoDB Branding Shape
Click here >
Menu Docs

Insira documentos

Neste guia, você pode aprender como usar o driver Kotlin Sync para adicionar documentos a uma coleção MongoDB realizando operações de inserção.

Uma operação de inserção insere um ou mais documentos em uma coleção MongoDB . Você pode executar uma operação de inserção utilizando os métodos insertOne() e insertMany() .

Os exemplos neste guia usam a sample_restaurants.restaurants coleção dos conjuntos de dados de amostra do Atlas . Para aprender a criar uma implantação gratuita do MongoDB e carregar os conjuntos de dados de amostra, consulte o guia Começar do MongoDB.

Os documentos nesta coleção são modelados pela seguinte classe de dados Kotlin :

data class Restaurant(val name: String, val borough: String)

Em uma coleção MongoDB , cada documento deve conter um campo _id que tenha um valor único.

O MongoDB permite gerenciar este campo de duas maneiras:

  • Você mesmo pode definir este campo para cada documento, garantindo que cada valor do campo _id seja único.

  • Você pode permitir que o acionador gere automaticamente um valor de ObjectId único para cada documento _id. Se você não definir manualmente um valor _id para um documento, o driver preencherá o campo com uma ObjectId.

A menos que você possa garantir exclusividade, recomendamos deixar o driver gerar automaticamente os valores de _id .

Observação

Erros de _id duplicados

A definição de valores _id duplicados em uma coleção viola as restrições de índice único , o que faz com que o driver retorne um WriteError do método insertOne() ou um BulkWriteError do método insertMany() .

Para saber mais sobre o campo _id, consulte o guia Índices únicos no manual do MongoDB Server .

Para saber mais sobre a estrutura e as regras de documentos, consulte o guia Documentos no manual do MongoDB Server .

Para adicionar um único documento a uma coleção MongoDB, chame o método insertOne() e passe o documento que você deseja adicionar.

O exemplo a seguir insere um documento na coleção restaurants :

val doc = Restaurant("Sea Shell Bar", "Queens")
val result = collection.insertOne(doc)

Para adicionar vários documentos a uma coleção MongoDB , use o método insertMany() e passe uma lista de documentos que você deseja adicionar.

O exemplo a seguir insere uma lista de documentos na coleção restaurants :

val docs = listOf(
Restaurant("Full Moon Grill", "Queens"),
Restaurant("King's Cup", "Manhattan"),
)
val result = collection.insertMany(docs)

O método insertOne() aceita opcionalmente um parâmetro InsertOneOptions que define opções para configurar a operação de inserção. Se você não especificar nenhuma opção, o driver executará a operação de inserção com as configurações padrão. Passe as opções como o último parâmetro para o método insertOne() .

A tabela a seguir descreve os métodos de configuração que você pode usar para configurar uma instância InsertOneOptions :

Método
Descrição

bypassDocumentValidation()

Se definido true como, permite que o driver ignore a validação em nível de documento. O
falsepadrão é.

comment()

Define um comentário a ser anexado à operação. Para obter mais informações, consulte o guia de campos de comando de inserção no manual do MongoDB Server para obter mais informações.

Você pode definir as configurações anteriores no método insertMany() configurando uma instância InsertManyOptions . Você também pode usar o método ordered() para especificar a ordem em que o driver insere documentos no MongoDB:

Método
Descrição

ordered()

Se definido true como, o driver envia documentos para o servidor na ordem fornecida. Se ocorrer um erro, o driver cancelará todas as operações de inserção restantes. O
truepadrão é.

Passe as opções como o último parâmetro para o método insertMany() .

O código a seguir usa o método bypassDocumentValidation() para definir a opção de ignorar as regras de validação do documento . Em seguida, o exemplo utiliza o método insertMany() para adicionar novos documentos à coleção restaurants .

val opts = InsertManyOptions().bypassDocumentValidation(true)
val docs = listOf(
Restaurant("Full Moon Grill", "Queens"),
Restaurant("King's Cup", "Manhattan"),
)
val result = collection.insertMany(docs, opts)

O método insertOne() retorna uma instância InsertOneResult e o método insertMany() retorna uma instância InsertManyResult .

Você pode utilizar os seguintes métodos para recuperar informações de uma instância do InsertOneResult :

Método
Descrição

getInsertedId()

Indica o valor _id do documento inserido.

wasAcknowledged()

Retorna true se o servidor reconhecer o resultado.

Você pode utilizar os seguintes métodos para recuperar informações de uma instância do InsertOneResult :

Método
Descrição

getInsertedIds()

Indica os valores _id dos documentos inseridos.

wasAcknowledged()

Retorna true se o servidor reconhecer o resultado.

Observação

Se o método wasAcknowledged() retornar false, tentar acessar os valores _id resultará em uma exceção InvalidOperation . O driver não pode determinar esses valores se o servidor não reconhecer a operação de gravação.

Para obter exemplos de código executáveis que demonstram como inserir documentos usando o driver Kotlin Sync, consulte Inserir documentos.

Para saber mais sobre qualquer um dos métodos ou tipos discutidos neste guia, consulte a seguinte documentação da API: