Visão geral
Nesta página, você pode ver exemplos de código copiáveis que mostram funções comuns que você pode usar para escrever dados no MongoDB com o driver C.
Dica
Para saber mais sobre qualquer uma das funções mostradas nesta página, consulte o link fornecido em cada seção.
Para usar um exemplo desta página, copie o exemplo de código para oaplicativo de amostra ou para seu próprio aplicativo. Certifique-se de substituir todos os espaços reservados nos exemplos de código, como <connection string URI>
, 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 o driver C está instalado.
Copie o seguinte código e cole-o em um novo arquivo
.c
.Copie um exemplo de código desta página e cole-o nas linhas especificadas no arquivo.
1 2 3 4 5 int 6 main (void) 7 { 8 mongoc_client_t *client; 9 mongoc_collection_t *collection; 10 char *str; 11 bson_error_t error; 12 13 mongoc_init (); 14 15 client = 16 mongoc_client_new ("<connection string URI>"); 17 collection = 18 mongoc_client_get_collection (client, "<database name>", "collection name"); 19 20 // Start example code here 21 22 // End example code here 23 24 mongoc_collection_destroy (collection); 25 mongoc_client_destroy (client); 26 mongoc_cleanup (); 27 28 return EXIT_SUCCESS; 29 }
insertOne
O código a seguir mostra como inserir um único documento em uma coleção:
bson_t *document = BCON_NEW ("<field name>", BCON_UTF8 ("<value>")); bson_error_t error; if (!mongoc_collection_insert_one ( collection, document, NULL, NULL, &error)) { fprintf (stderr, "Insert one operation failed: %s\n", error.message); } bson_destroy (document);
Para saber mais sobre a mongoc_collection_insert_one()
função, consulte o guia Inserir documentos.
Inserir vários
O seguinte código mostra como inserir vários documentos em uma coleção:
size_t num_docs = 2; bson_t *docs[num_docs]; docs[0] = BCON_NEW ("<field name>", BCON_UTF8 ("<value>")); docs[1] = BCON_NEW ("<field name>", BCON_UTF8 ("<value>")); bson_error_t error; if (!mongoc_collection_insert_many (collection, (const bson_t **) docs, num_docs, NULL, NULL, &error)) { fprintf (stderr, "Insert many operation failed: %s\n", error.message); } bson_destroy (docs[0]); bson_destroy (docs[1]);
Para saber mais sobre a mongoc_collection_insert_many()
função, consulte o guia Inserir documentos.
UpdateOne
O código abaixo mostra como atualizar um único documento em uma collection criando ou editando um campo:
bson_t *query = BCON_NEW ("<field to match>", BCON_UTF8 ("<value to match>")); bson_t *update = BCON_NEW ("$set", "{", "<field name>", BCON_UTF8 ("<value>"), "}"); bson_error_t error; if (!mongoc_collection_update_one (collection, query, update, NULL, NULL, &error)) { fprintf (stderr, "Update one operation failed: %s\n", error.message); } bson_destroy (query); bson_destroy (update);
Para saber mais sobre a mongoc_collection_update_one()
função, 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:
bson_t *query = BCON_NEW ("<field to match>", BCON_UTF8 ("<value to match>")); bson_t *update = BCON_NEW ("$set", "{", "<field name>", BCON_UTF8 ("<value>"), "}"); bson_error_t error; if (!mongoc_collection_update_many (collection, query, update, NULL, NULL, &error)) { fprintf (stderr, "Update many operation failed: %s\n", error.message); } bson_destroy (query); bson_destroy (update);
Para saber mais sobre a mongoc_collection_update_many()
função, consulte o guia Atualizar documentos.
Excluir um
O código a seguir mostra como excluir um único documento em uma collection:
bson_t *filter = BCON_NEW ("<field name>", BCON_UTF8 ("<value>")); bson_error_t error; if (!mongoc_collection_delete_one (collection, filter, NULL, NULL, &error)) { fprintf (stderr, "Delete error: %s\n", error.message); } bson_destroy (filter);
Para saber mais sobre a mongoc_collection_delete_one()
função, consulte o guia Excluir documentos.
Excluir vários
O seguinte código mostra como excluir vários documentos em uma coleção:
bson_t *filter = BCON_NEW ("<field name>", BCON_UTF8 ("<value>")); bson_error_t error; if (!mongoc_collection_delete_many (collection, filter, NULL, NULL, &error)) { fprintf (stderr, "Delete error: %s\n", error.message); } bson_destroy (filter);
Para saber mais sobre a mongoc_collection_delete_many()
função, 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:
bson_error_t error; mongoc_bulk_operation_t *bulk = mongoc_collection_create_bulk_operation_with_opts (collection, NULL); bson_t *insert_doc = BCON_NEW ( "<field name>", BCON_UTF8 ("<value>"), "<field name>", BCON_UTF8 ("<value>"), "<field name>", BCON_UTF8 ("<value>"), "<field name>", BCON_UTF8 ("<value>") ); mongoc_bulk_operation_insert(bulk, insert_doc); bson_destroy (insert_doc); bson_t *query = BCON_NEW ("<field to match>", BCON_UTF8 ("<value to match>")); bson_t *update = BCON_NEW ("$set", "{", "<field name>", BCON_UTF8 ("<value>"), "}"); mongoc_bulk_operation_update_one(bulk, query, update, false); bson_destroy(query); bson_destroy(update); bool result = mongoc_bulk_operation_execute(bulk, NULL, &error); if (!result) { fprintf (stderr, "Bulk operation error: %s\n", error.message); } mongoc_bulk_operation_destroy (bulk);
Para saber mais sobre a mongoc_collection_bulk_operation_execute()
função, consulte o guia de operações de gravação em massa.