Menu Docs
Página inicial do Docs
/ / /
Driver C

Gravar dados no MongoDB

Nesta página

  • Visão geral
  • Aplicativo de amostra
  • insertOne
  • Inserir vários
  • UpdateOne
  • Atualizar vários
  • Excluir um
  • Excluir vários
  • Gravação em massa

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.

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:

  1. Verifique se o driver C está instalado.

  2. Copie o seguinte código e cole-o em um novo arquivo .c .

  3. Copie um exemplo de código desta página e cole-o nas linhas especificadas no arquivo.

1#include <bson/bson.h>
2#include <mongoc/mongoc.h>
3#include <stdio.h>
4
5int
6main (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}

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 .

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 .

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 .

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 .

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 .

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 .

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 .

Voltar

Executar um comando de banco de dados