Esercizi Eliminazione MongoDB C++ Esercizio 1: Eliminazione singola di un documento usando mongocxx (metodo sequenziale) Esercizio 2: Eliminazione multipla di documenti usando mongocxx (metodo sequenziale) Esercizio 3: Eliminazione singola di un documento usando mongocxx (OOP) Esercizio 4: Eliminazione multipla di documenti usando mongocxx (OOP) Esercizio 5: Eliminazione singola di un documento usando mongo-c-driver (metodo sequenziale) Esercizio 6: Eliminazione multipla di documenti usando mongo-c-driver (metodo sequenziale) Esercizio 7: Eliminazione singola di un documento usando mongo-c-driver (OOP) Esercizio 8: Eliminazione multipla di documenti usando mongo-c-driver (OOP) Esercizio 9: Eliminazione singola di un documento usando Poco MongoDB (metodo sequenziale) Esercizio 10: Eliminazione multipla di documenti usando Poco MongoDB (OOP) Ecco degli esercizi semplici con soluzione per praticare l’eliminazione singola e multipla di documenti in MongoDB utilizzando C++ sia in modo sequenziale che OOP.
Esercizio 1: Eliminazione singola di un documento usando mongocxx (metodo sequenziale)
Stabilire una connessione a MongoDB ed eliminare un singolo documento.
#include <mongocxx/client.hpp>
#include <mongocxx/instance.hpp>
#include <mongocxx/uri.hpp>
#include <mongocxx/stdx.hpp>
#include <bsoncxx/builder/basic/document.hpp>
mongocxx ::instance instance{};
mongocxx ::client client{ mongocxx ::uri{ "mongodb://localhost:27017" }};
auto collection = client[ "test_db" ][ "test_collection" ];
bsoncxx :: builder :: basic ::document filter;
filter. append ( bsoncxx :: builder :: basic :: kvp ( "name" , "John Doe" ));
auto result = collection. delete_one (filter. view ());
std ::cout << "Eliminati " << result-> deleted_count () << " documenti." << std ::endl;
std ::cout << "Nessun documento eliminato." << std ::endl;
Esercizio 2: Eliminazione multipla di documenti usando mongocxx (metodo sequenziale)
Stabilire una connessione a MongoDB ed eliminare più documenti.
#include <mongocxx/client.hpp>
#include <mongocxx/instance.hpp>
#include <mongocxx/uri.hpp>
#include <mongocxx/stdx.hpp>
#include <bsoncxx/builder/basic/document.hpp>
mongocxx ::instance instance{};
mongocxx ::client client{ mongocxx ::uri{ "mongodb://localhost:27017" }};
auto collection = client[ "test_db" ][ "test_collection" ];
bsoncxx :: builder :: basic ::document filter;
filter. append ( bsoncxx :: builder :: basic :: kvp ( "status" , "inactive" ));
auto result = collection. delete_many (filter. view ());
std ::cout << "Eliminati " << result-> deleted_count () << " documenti." << std ::endl;
std ::cout << "Nessun documento eliminato." << std ::endl;
Esercizio 3: Eliminazione singola di un documento usando mongocxx (OOP)
Creare una classe per gestire la connessione a MongoDB ed eliminare un singolo documento.
#include <mongocxx/client.hpp>
#include <mongocxx/instance.hpp>
#include <mongocxx/uri.hpp>
#include <mongocxx/stdx.hpp>
#include <bsoncxx/builder/basic/document.hpp>
mongocxx ::instance instance{};
mongocxx ::client client{ mongocxx ::uri{ "mongodb://localhost:27017" }};
MongoDBClient () = default ;
void eliminaDocumentoSingolo ( const std :: string & db_name , const std :: string & coll_name , const bsoncxx :: document :: view & filter ) {
auto collection = client[db_name][coll_name];
auto result = collection. delete_one (filter);
std ::cout << "Eliminati " << result-> deleted_count () << " documenti." << std ::endl;
std ::cout << "Nessun documento eliminato." << std ::endl;
bsoncxx :: builder :: basic ::document filter;
filter. append ( bsoncxx :: builder :: basic :: kvp ( "name" , "John Doe" ));
client. eliminaDocumentoSingolo ( "test_db" , "test_collection" , filter. view ());
Esercizio 4: Eliminazione multipla di documenti usando mongocxx (OOP)
Creare una classe per gestire la connessione a MongoDB ed eliminare più documenti.
#include <mongocxx/client.hpp>
#include <mongocxx/instance.hpp>
#include <mongocxx/uri.hpp>
#include <mongocxx/stdx.hpp>
#include <bsoncxx/builder/basic/document.hpp>
mongocxx ::instance instance{};
mongocxx ::client client{ mongocxx ::uri{ "mongodb://localhost:27017" }};
MongoDBClient () = default ;
void eliminaDocumentiMultipli ( const std :: string & db_name , const std :: string & coll_name , const bsoncxx :: document :: view & filter ) {
auto collection = client[db_name][coll_name];
auto result = collection. delete_many (filter);
std ::cout << "Eliminati " << result-> deleted_count () << " documenti." << std ::endl;
std ::cout << "Nessun documento eliminato." << std ::endl;
bsoncxx :: builder :: basic ::document filter;
filter. append ( bsoncxx :: builder :: basic :: kvp ( "status" , "inactive" ));
client. eliminaDocumentiMultipli ( "test_db" , "test_collection" , filter. view ());
Esercizio 5: Eliminazione singola di un documento usando mongo-c-driver (metodo sequenziale)
Stabilire una connessione a MongoDB ed eliminare un singolo documento usando mongo-c-driver.
#include <mongoc/mongoc.h>
mongoc_client_t * client = mongoc_client_new ( "mongodb://localhost:27017" );
mongoc_collection_t * collection = mongoc_client_get_collection (client, "test_db" , "test_collection" );
bson_t * filter = BCON_NEW ( "name" , BCON_UTF8 ( "John Doe" ));
if ( mongoc_collection_delete_one (collection, filter, nullptr , nullptr , & error)) {
std ::cout << "Documento eliminato con successo." << std ::endl;
std ::cerr << "Errore nell'eliminazione del documento: " << error.message << std ::endl;
mongoc_collection_destroy (collection);
mongoc_client_destroy (client);
Esercizio 6: Eliminazione multipla di documenti usando mongo-c-driver (metodo sequenziale)
Stabilire una connessione a MongoDB ed eliminare più documenti usando mongo-c-driver.
#include <mongoc/mongoc.h>
mongoc_client_t * client = mongoc_client_new ( "mongodb://localhost:27017" );
mongoc_collection_t * collection = mongoc_client_get_collection (client, "test_db" , "test_collection" );
bson_t * filter = BCON_NEW ( "status" , BCON_UTF8 ( "inactive" ));
if ( mongoc_collection_delete_many (collection, filter, nullptr , nullptr , & error)) {
std ::cout << "Documenti eliminati con successo." << std ::endl;
std ::cerr << "Errore nell'eliminazione dei documenti: " << error.message << std ::endl;
mongoc_collection_destroy (collection);
mongoc_client_destroy (client);
Esercizio 7: Eliminazione singola di un documento usando mongo-c-driver (OOP)
Creare una classe per gestire
la connessione a MongoDB ed eliminare un singolo documento usando mongo-c-driver.
#include <mongoc/mongoc.h>
MongoDBClient ( const std :: string & uri ) {
client = mongoc_client_new (uri. c_str ());
mongoc_client_destroy (client);
void eliminaDocumentoSingolo ( const std :: string & db_name , const std :: string & coll_name , const bson_t * filter ) {
mongoc_collection_t * collection = mongoc_client_get_collection (client, db_name. c_str (), coll_name. c_str ());
if ( mongoc_collection_delete_one (collection, filter, nullptr , nullptr , & error)) {
std ::cout << "Documento eliminato con successo." << std ::endl;
std ::cerr << "Errore nell'eliminazione del documento: " << error.message << std ::endl;
mongoc_collection_destroy (collection);
MongoDBClient client ( "mongodb://localhost:27017" );
bson_t * filter = BCON_NEW ( "name" , BCON_UTF8 ( "John Doe" ));
client. eliminaDocumentoSingolo ( "test_db" , "test_collection" , filter);
Esercizio 8: Eliminazione multipla di documenti usando mongo-c-driver (OOP)
Creare una classe per gestire la connessione a MongoDB ed eliminare più documenti usando mongo-c-driver.
#include <mongoc/mongoc.h>
MongoDBClient ( const std :: string & uri ) {
client = mongoc_client_new (uri. c_str ());
mongoc_client_destroy (client);
void eliminaDocumentiMultipli ( const std :: string & db_name , const std :: string & coll_name , const bson_t * filter ) {
mongoc_collection_t * collection = mongoc_client_get_collection (client, db_name. c_str (), coll_name. c_str ());
if ( mongoc_collection_delete_many (collection, filter, nullptr , nullptr , & error)) {
std ::cout << "Documenti eliminati con successo." << std ::endl;
std ::cerr << "Errore nell'eliminazione dei documenti: " << error.message << std ::endl;
mongoc_collection_destroy (collection);
MongoDBClient client ( "mongodb://localhost:27017" );
bson_t * filter = BCON_NEW ( "status" , BCON_UTF8 ( "inactive" ));
client. eliminaDocumentiMultipli ( "test_db" , "test_collection" , filter);
Esercizio 9: Eliminazione singola di un documento usando Poco MongoDB (metodo sequenziale)
Stabilire una connessione a MongoDB ed eliminare un singolo documento usando Poco MongoDB.
#include <Poco/MongoDB/Client.h>
#include <Poco/MongoDB/Database.h>
#include <Poco/MongoDB/Collection.h>
#include <Poco/MongoDB/QueryRequest.h>
Poco :: MongoDB ::Client client ( "localhost" , 27017 );
Poco :: MongoDB ::Database db ( "test_db" );
Poco :: MongoDB ::Collection collection (db, "test_collection" );
Poco :: MongoDB :: QueryRequest ::Ptr query ( new Poco :: MongoDB :: QueryRequest ( "test_db.test_collection" ));
query-> selector (). add ( "name" , "John Doe" );
collection. remove ( * query);
std ::cout << "Documento eliminato con successo." << std ::endl;
} catch ( const Poco ::Exception & e) {
std ::cerr << "Errore: " << e. displayText () << std ::endl;
Esercizio 10: Eliminazione multipla di documenti usando Poco MongoDB (OOP)
Creare una classe per gestire la connessione a MongoDB ed eliminare più documenti usando Poco MongoDB.
#include <Poco/MongoDB/Client.h>
#include <Poco/MongoDB/Database.h>
#include <Poco/MongoDB/Collection.h>
#include <Poco/MongoDB/QueryRequest.h>
Poco :: MongoDB ::Client client;
MongoDBClient ( const std :: string & host , int port ) : client (host, port) {}
void eliminaDocumentiMultipli ( const std :: string & db_name , const std :: string & coll_name , const Poco :: MongoDB :: Document :: Ptr & filter ) {
Poco :: MongoDB ::Database db (db_name);
Poco :: MongoDB ::Collection collection (db, coll_name);
Poco :: MongoDB :: QueryRequest ::Ptr query ( new Poco :: MongoDB :: QueryRequest (db_name + "." + coll_name));
query-> selector (). add (filter);
collection. remove ( * query);
std ::cout << "Documenti eliminati con successo." << std ::endl;
} catch ( const Poco ::Exception & e) {
std ::cerr << "Errore: " << e. displayText () << std ::endl;
MongoDBClient client ( "localhost" , 27017 );
Poco :: MongoDB :: Document ::Ptr filter ( new Poco :: MongoDB ::Document);
filter-> add ( "status" , "inactive" );
client. eliminaDocumentiMultipli ( "test_db" , "test_collection" , filter);