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 C++ 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 usando o método insert_one() para inserir um único documento ou o método insert_many() para inserir um ou mais documentos.

Os exemplos neste guia usam a collection sample_restaurants.restaurants dos conjuntos de dados de amostra do Atlas. Para acessar essa coleção a partir do seu aplicação C++ , instancie um client que se conecte a um Atlas cluster e atribua os seguintes valores às suas variáveis db e collection :

auto db = client["sample_restaurants"];
auto collection = db["restaurants"];

Para aprender a criar um cluster MongoDB Atlas gratuito e carregar os conjuntos de dados de amostra, consulte o Guia de Introdução do 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.

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

Observação

Os valores duplicados de _id violam restrições de índice único , o que faz com que o driver retorne um erro mongocxx::bulk_write_exception .

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 insert_one() e passe o documento que você deseja adicionar.

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

auto result = collection.insert_one(make_document(kvp("name", "Mongo's Burgers")));

Para adicionar vários documentos a uma collection do MongoDB , chame o método insert_many() e passe um vetor que armazene os documentos que você deseja adicionar.

O exemplo a seguir insere dois documentos na collection restaurants :

std::vector<bsoncxx::document::value> restaurants;
restaurants.push_back(make_document(kvp("name", "Mongo's Burgers")));
restaurants.push_back(make_document(kvp("name", "Mongo's Pizza")));
auto result = collection.insert_many(restaurants);

Você pode modificar o comportamento dos métodos insert_one() e insert_many() passando uma instância da classe mongocxx::options::insert como parâmetro opcional. A tabela seguinte descreve os campos que você pode definir em uma instância do mongocxx::options::insert :

Campo
Descrição

bypass_document_validation

Se definido true como, permite que a gravação
desative a validação em nível de false documento.
O padrão é. Tipo: bool

write_concern

Define a preocupação de gravação para a operação.
O padrão é a preocupação de gravação do namespace.
Tipo: mongocxx::write_concern

ordered

Se true definido como, a operação interrompe a inserção de documentos quando uma inserção falha.false Se, a operação continua inserindo os documentos restantes quando uma inserção
truefalha.
O padrão é. Tipo: bool

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 .
Tipo: bsoncxx::types::bson_value::view_or_value

O código a seguir usa o método insert_many() para inserir três novos documentos em uma coleção. Como o campo bypass_document_validation está definido como true em uma instância mongocxx::options::insert , essa operação de inserção ignora a validação em nível de documento:

std::vector<bsoncxx::document::value> docs;
docs.push_back(make_document(kvp("name", "Mongo's Burgers")));
docs.push_back(make_document(kvp("name", "Mongo's Pizza")));
docs.push_back(make_document(kvp("name", "Mongo's Tacos")));
mongocxx::options::insert opts;
opts.bypass_document_validation(true);
auto result = collection.insert_many(docs, opts);

Para obter exemplos de código executáveis de inserção de documentos com o driver C++ , consulte Gravar dados no MongoDB.

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