Gravar dados no MongoDB
Nesta página
Visão geral
Nesta página, você pode ver exemplos de código copiáveis que mostram métodos comuns de driver C++ para gravar dados no MongoDB.
Dica
Para saber mais sobre qualquer um dos métodos mostrados nesta página, consulte o link fornecido em cada seção.
Para usar um exemplo desta página, copie o exemplo de código noaplicação de amostra ou em seu próprio aplicação. Certifique-se de substituir todos os espaços reservados, como <connection string>
, pelos valores relevantes para sua implantação do MongoDB .
Aplicativo de amostra
Você pode usar o seguinte aplicativo de exemplo para testar os exemplos de código nesta página. Para usar o aplicativo de amostra, execute as seguintes etapas:
Verifique se você tem o driver C++ instalado em um local de onde seu projeto possa importá-lo.
Copie o código a seguir e cole-o em um novo arquivo
.cpp
dentro do seu projeto.Copie um exemplo de código desta página e cole-o na seção destacada do arquivo.
1 2 3 4 5 6 7 8 9 10 using bsoncxx::builder::basic::kvp; 11 using bsoncxx::builder::basic::make_document; 12 13 int main() { 14 try { 15 mongocxx::instance instance; 16 17 mongocxx::uri uri("<connection string>"); 18 mongocxx::client client(uri); 19 20 auto database = client["<database name>"]; 21 auto collection = database["<collection name>"]; 22 23 // Start example code here 24 25 // End example code here 26 27 } catch (const mongocxx::exception& e) { 28 std::cout << "An exception occurred: " << e.what() << "\n"; 29 return EXIT_FAILURE; 30 } 31 32 return EXIT_SUCCESS; 33 }
insertOne
O código a seguir mostra como inserir um único documento em uma coleção:
auto result = collection.insert_one(make_document(kvp("<field name>", "<value>")));
Para saber mais sobre o método insert_one()
, consulte o guia Inserir documentos .
Inserir vários
O seguinte código mostra como inserir vários documentos em uma coleção:
std::vector<bsoncxx::document::value> documents; documents.push_back(make_document(kvp("<field name>", "<value>"))); documents.push_back(make_document(kvp("<field name>", "<value>"))); auto result = collection.insert_many(documents);
Para saber mais sobre o método insert_many()
, consulte o guia Inserir documentos .
UpdateOne
O código abaixo mostra como atualizar um único documento em uma collection criando ou editando um campo:
auto query_filter = make_document(kvp("<field to match>", "<value to match>")); auto update_doc = make_document(kvp("$set", make_document(kvp("<field name>", "<value>")))); auto result = collection.update_one(query_filter.view(), update_doc.view());
Para saber mais sobre o método update_one()
, consulte o guia Atualizar documentos .
Atualizar vários
O seguinte código mostra como atualizar vários documentos em uma collection criando ou editando um campo:
auto query_filter = make_document(kvp("<field to match>", "<value to match>")); auto update_doc = make_document(kvp("$set", make_document(kvp("<field name>", "<value>")))); auto result = collection.update_many(query_filter.view(), update_doc.view());
Para saber mais sobre o método update_many()
, consulte o guia Atualizar documentos .
replaceOne
O seguinte código mostra como substituir um único documento em uma coleção:
auto query_filter = make_document(kvp("<field to match>", "<value to match>")); auto replace_doc = make_document(make_document(kvp("<field name>", "<value>"))); auto result = collection.replace_one(query_filter.view(), replace_doc.view());
Para saber mais sobre o método replace_one()
, consulte o guia Substituir documentos .
Excluir um
O código a seguir mostra como excluir um único documento em uma collection:
auto result = collection.delete_one(make_document(kvp("<field name>", "<value>")));
Para saber mais sobre o método delete_one()
, consulte o guia Excluir documentos .
Excluir vários
O seguinte código mostra como excluir vários documentos em uma coleção:
auto result = collection.delete_many(make_document(kvp("<field name>", "<value>")));
Para saber mais sobre o método delete_many()
, consulte o guia Excluir documentos .
Gravação em massa
O seguinte código mostra como executar múltiplas operações de gravação em uma única operação em massa:
auto bulk = collection.create_bulk_write(); auto insert_doc = make_document(kvp("<field name>", "<value>")); auto update_filter = make_document(kvp("<field name>", "<value>")); auto update_doc = make_document(kvp("$set", make_document(kvp("<field name>", "<value>")))); auto delete_filter = make_document(kvp("<field name>", "<value>")); mongocxx::model::insert_one insert_op{insert_doc.view()}; mongocxx::model::update_many update_op{update_filter.view(), update_doc.view()}; mongocxx::model::delete_one delete_op{delete_filter.view()}; bulk.append(insert_op); bulk.append(update_op); bulk.append(delete_op); auto result = bulk.execute();
Para saber mais sobre o método create_bulk_write()
, consulte o guia de escrita em massa .