Gravar dados no MongoDB
Nesta página
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 função mongoc_collection_insert_one()
, 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 função mongoc_collection_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:
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 função mongoc_collection_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:
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 função mongoc_collection_update_many()
, 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 função mongoc_collection_delete_one()
, 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 função mongoc_collection_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:
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 função mongoc_collection_bulk_operation_execute()
, consulte o guia de operações de gravação em massa .