Exclua documentos
Nesta página
Visão geral
Neste guia, você pode aprender como usar o driver C para remover documentos de uma coleção MongoDB realizando operações de exclusão.
Uma operação de exclusão remove um ou mais documentos de uma collection do MongoDB . Você pode executar uma operação de exclusão utilizando as funções mongoc_collection_delete_one()
ou mongoc_collection_delete_many()
.
Dados de amostra
Os exemplos neste guia utilizam a coleção do restaurants
no banco de dados de dados do sample_restaurants
a partir dos conjuntos de dados de amostra do Atlas. Para saber como criar um cluster MongoDB Atlas gratuito e carregar os conjuntos de dados de amostra, consulte o guia Iniciar com Atlas .
Excluir operações
Você pode executar operações de exclusão usando as seguintes funções:
mongoc_collection_delete_one()
, que exclui o primeiro documento que corresponde aos critérios do Atlas Searchmongoc_collection_delete_many()
, que exclui todos os documentos que correspondem aos critérios do Atlas Search
Cada função de exclusão aceita os seguintes parâmetros:
Collection: especifica a collection a ser modificada.
documento defiltro de query : especifica quais documentos de coleção excluir. Para obter mais informações sobre filtros de query, consulte a seção Documentos de filtro de query no manual do MongoDB Server .
Localização dos resultados: especifica um ponteiro para o armazenamento substituível que conterá os resultados da operação
NULL
ou.Local do erro: especifica um local para um valor de erro
NULL
ou.
Excluir um documento
O exemplo a seguir usa a função mongoc_collection_delete_one()
para remover um documento na coleção restaurants
que tem um valor name
de "Ready Penny Inn"
:
bson_t *filter = BCON_NEW ("name", BCON_UTF8 ("Ready Penny Inn")); bson_error_t error; if (!mongoc_collection_delete_one (collection, filter, NULL, NULL, &error)) { printf ("Delete error: %s\n", error.message); } bson_destroy (filter);
Excluir vários documentos
O exemplo seguinte utiliza a função mongoc_collection_delete_many()
para remover todos os documentos na collection restaurants
que têm um valor borough
de "Brooklyn"
:
bson_t *filter = BCON_NEW ("borough", BCON_UTF8 ("Brooklyn")); bson_error_t error; if (!mongoc_collection_delete_many (collection, filter, NULL, NULL, &error)) { printf ("Delete error: %s\n", error.message); } bson_destroy (filter);
Personalizar a operação de exclusão
Você pode modificar o comportamento das funções mongoc_collection_delete_one()
e mongoc_collection_delete_many()
passando um documento BSON que especifica os valores das opções. A tabela a seguir descreve algumas opções que você pode definir no documento:
Campo | Descrição |
---|---|
collation | Specifies the kind of language collation to use when comparing
text. For more information, see Collation
in the MongoDB Server manual. Type: bson_t |
writeConcern | Sets the write concern for the operation. Defaults to the write concern of the namespace. Type: mongoc_write_concern_t |
let | Specifies a document with a list of values to improve operation readability.
Values must be constant or closed expressions that don't reference document
fields. For more information, see the let statement in the
MongoDB Server manual. Type: bson_t |
comment | A comment to attach to the operation. For more information, see the insert command
fields guide in the
MongoDB Server manual. Type: bson_value_t |
O exemplo seguinte chama a função mongoc_collection_delete_many()
para excluir todos os documentos na coleção restaurants
que têm um valor de name
contendo a string "Mongo"
. Ele também define a opção comment
para adicionar um comentário à operação:
bson_t *filter = BCON_NEW ("name", "{", "$regex", BCON_UTF8 ("Mongo"), "}"); bson_error_t error; bson_t opts; bson_init(&opts); BCON_APPEND (&opts, "comment", BCON_UTF8 ("Deleting Mongo restaurants")); if (!mongoc_collection_delete_many (collection, filter, &opts, NULL, &error)) { printf ("Delete error: %s\n", error.message); } bson_destroy (filter); bson_destroy (&opts);
Dica
Se você usar a função mongoc_collection_delete_one()
em vez de mongoc_collection_delete_many()
no exemplo anterior, o driver excluirá apenas o primeiro documento com valor de name
contendo "Mongo"
.
Documentação da API
Para saber mais sobre qualquer uma das funções discutidas nesta guia, consulte a seguinte documentação da API: