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.
To use an example from this page, copy the code example into the sample application or your own application. Be sure to replace all placeholders, such as <connection string>, with the relevant values for your MongoDB deployment.
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
.cppdentro 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 .