Docs Menu
Docs Home
/ /

Escribe datos en MongoDB

En esta página, puede ver ejemplos de código copiables que muestran métodos comunes del controlador C++ para escribir datos en MongoDB.

Tip

Para obtener más información sobre cualquiera de los métodos que se muestran en esta página, consulte el enlace proporcionado en cada sección.

Para utilizar un ejemplo de esta página, copie el ejemplo de código en el Aplicación de muestra o su propia aplicación. Asegúrese de reemplazar todos los marcadores de posición, como <connection string>, con los valores relevantes para su implementación de MongoDB.

Puede utilizar la siguiente aplicación de muestra para probar los ejemplos de código en esta página. Para usar la aplicación de muestra, siga los siguientes pasos:

  1. Asegúrate de tener instalado el driver C++ en una ubicación desde la que tu Proyecto pueda importarlo.

  2. Copie el siguiente código y péguelo en un nuevo archivo .cpp dentro de su proyecto.

  3. Copie un ejemplo de código de esta página y péguelo dentro de la sección resaltada del archivo.

1#include <iostream>
2
3#include <bsoncxx/builder/basic/document.hpp>
4#include <bsoncxx/json.hpp>
5#include <mongocxx/client.hpp>
6#include <mongocxx/exception/exception.hpp>
7#include <mongocxx/instance.hpp>
8#include <mongocxx/uri.hpp>
9
10using bsoncxx::builder::basic::kvp;
11using bsoncxx::builder::basic::make_document;
12
13int 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}

El siguiente código muestra cómo insertar un solo documento en una colección:

auto result = collection.insert_one(make_document(kvp("<field name>", "<value>")));

Para obtener más información sobre el método insert_one(), consulte la Guía deinserción de documentos.

El siguiente código muestra cómo insertar varios documentos en una colección:

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 obtener más información sobre el método insert_many(), consultar la guía Insertar Documentos.

El siguiente código muestra cómo actualizar un solo documento en una colección creando o editando un 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 obtener más información sobre el método update_one(), consulte la Guía para actualizar documentos.

El siguiente código muestra cómo actualizar varios documentos en una colección creando o editando un 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 obtener más información sobre el método update_many(), consulte la Guía para actualizar documentos.

El siguiente código muestra cómo reemplazar un solo documento en una colección:

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 aprender más sobre el método replace_one(), consulta la guía Reemplazar Documentos.

El siguiente código muestra cómo eliminar un solo documento en una colección:

auto result = collection.delete_one(make_document(kvp("<field name>", "<value>")));

Para obtener más información sobre el método delete_one(), consulta la guía Borrar Documentos.

El siguiente código muestra cómo eliminar varios documentos en una colección:

auto result = collection.delete_many(make_document(kvp("<field name>", "<value>")));

Para obtener más información sobre el método delete_many(), consulta la guía Borrar Documentos.

El siguiente código muestra cómo realizar múltiples operaciones de guardar en una sola operación masiva:

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 aprender más sobre el método create_bulk_write(), consulta la Guía de escritura masiva.

Volver

Monitorear cambios

En esta página