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.
Menu Docs

Insira documentos

Neste guia, você pode aprender como usar o driver Java Reactive Streams 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() ou insertMany() .

Os exemplos neste guia usam a sample_restaurants.restaurants coleção dos conjuntos de dados de amostra do Atlas .

Para saber como criar um cluster gratuito do MongoDB Atlas e carregar os conjuntos de dados de amostra, consulte o tutorial de Introdução .

Importante

Biblioteca do Reator do Projeto

Este guia usa a biblioteca Project Reactor para consumir instâncias do Publisher retornadas pelos métodos de driver Java Reactive Streams. Para saber mais sobre a biblioteca do Projeto Reactor e como usá-la, consulte Introdução na documentação do Reactor. Para saber mais sobre como usamos os métodos da biblioteca do Project Reactor neste guia, consulte o guia Gravar dados no MongoDB.

Em uma coleção MongoDB, cada documento deve conter um campo _id com um valor de campo ú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 valores de ObjectId únicos 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

_id Os valores _id duplicados violam as restrições de índice exclusivo, o que faz com que o driver retorne um WriteError de insertOne() ou um BulkWriteError de 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. Em seguida, passe o resultado insertOne() para o método Mono.from() estático de Mono. Mono é uma classe da biblioteca do Project Reactor. No Java Reactive Streams, os métodos do driver retornam instâncias Publisher frios, o que significa que a operação correspondente não acontece a menos que você assine o Publisher retornado. Este guia usa a biblioteca do Project Reactor para consumi-los. Para saber mais sobre o Mono, consulte Mono na documentação do Projeto Reactor.

O exemplo a seguir usa o método insertOne() para inserir um documento no qual o valor name é "Mongo's Burgers" na coleção restaurants :

Document document = new Document("name", "Mongo's Burgers");
Publisher<InsertOneResult> insertPublisher = restaurants.insertOne(document);
Mono.from(insertPublisher).block();

Para adicionar vários documentos a uma coleção MongoDB , chame o método insertMany() e passe uma lista de documentos que você deseja adicionar. Em seguida, passe o resultado insertMany() para o método Mono.from() estático de Mono. Mono é uma classe da biblioteca do Project Reactor. No Java Reactive Streams, os métodos do driver retornam instâncias Publisher frios, o que significa que a operação correspondente não acontece a menos que você assine o Publisher retornado. Este guia usa a biblioteca do Project Reactor para consumi-los. Para saber mais sobre o Mono, consulte Mono na documentação do Projeto Reactor.

O exemplo a seguir utiliza o método insertMany() para inserir uma lista de documentos na collection restaurants :

Document doc1 = new Document("name", "Mongo's Pizza");
Document doc2 = new Document("name", "Mongo's Coffee");
List<Document> documents = Arrays.asList(doc1, doc2);
Publisher<InsertManyResult> insertPublisher = restaurants.insertMany(documents);
Mono.from(insertPublisher).block();

A classe InsertOneOptions contém métodos que modificam o comportamento do método insertOne() . Para usar a classe InsertOneOptions , construa uma nova instância da classe e, em seguida, chame um ou mais de seus métodos para modificar a operação de inserção. Você pode encadear essas chamadas de método. Para modificar o comportamento da operação de inserção, passe a instância de classe e as chamadas de método encadeadas como o segundo argumento para o método insertOne() .

Da mesma forma, você pode modificar o método insertMany() usando a classe InsertManyOptions .

Você pode utilizar os seguintes métodos na classe InsertOneOptions para modificar o método insertOne() . Todos os métodos são opcionais.

Método
Descrição

bypassDocumentValidation (Boolean bypassDocumentValidation)

Se definido True como, permite que a gravação desative a validação em nível de documento. O
Falsepadrão é.

toString()

Se usado, retorna uma representação de string do objeto.

comment(BsonValue comment)

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 .

A classe InsertManyOptions contém os métodos anteriores, bem como o seguinte método ordered() :

Método
Descrição

ordered(Boolean ordered)

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

O código a seguir usa o método insertMany() para inserir novos documentos na coleção restaurants . Ela também define a opção bypassDocumentValidation(true) para ignorar a validação em nível de documento.

Document doc1 = new Document("name", "Mongo's Burgers");
Document doc2 = new Document("name", "Mongo's Pizza");
Document doc3 = new Document("name", "Mongo's Coffee");
List<Document> documents = Arrays.asList(doc1, doc2, doc3);
Publisher<InsertManyResult> insertPublisher =
restaurants.insertMany(documents,
new InsertManyOptions().bypassDocumentValidation(true));
Mono.from(insertPublisher).block();

Para obter exemplos de código executáveis de inserção de documentos com o driver Java Reactive Streams, consulte o guia de operações CRUD.

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