Visão geral
Neste guia, você pode aprender como usar o driver C para executar consultas do MongoDB Search em uma coleção. O MongoDB Search permite realizar pesquisas de texto completo em collections hospedadas no MongoDB Atlas. Os índices de pesquisa do MongoDB especificam o comportamento da pesquisa e quais campos indexar.
Dados de amostra
O exemplo deste guia utiliza a movies coleção no sample_mflix banco de dados do a partir dos conjuntos de dados de amostra do Atlas . Para saber como criar um cluster gratuito do MongoDB Atlas e carregar os conjuntos de dados de amostra, consulte o guia de Introdução.
Executar uma query de pesquisa do MongoDB
Esta seção mostra como criar um pipeline de agregação para executar uma query do MongoDB Search em uma coleção. Na estrutura bson_t que representa os estágios do pipeline, adicione o estágio $search para especificar os critérios de pesquisa. Em seguida, chame a função mongoc_collection_aggregate() e passe seu pipeline como um parâmetro.
Dica
Para aprender mais sobre operações de agregação, consulte o guia Agregação.
Antes de executar uma query do MongoDB Search, você deve criar um índice do MongoDB Search em sua collection. Para saber como criar programaticamente um índice de pesquisa do MongoDB , consulte a seção Criar um índice de pesquisa do guia Índices de pesquisa do MongoDB .
Exemplo de pesquisa do MongoDB
Este exemplo executa uma query do MongoDB Search executando as seguintes ações:
Cria um estágio
$searchque instrui o driver a fazer query de documentos nos quais o campotitlecontém a palavra"Alabama"Cria uma etapa
$projectque instrui o driver a incluir o campotitlenos resultados da consultaPassa os estágios do pipeline para a função
mongoc_collection_aggregate()e imprime os resultados
const bson_t *doc; bson_t *pipeline = BCON_NEW("pipeline", "[", "{", "$search", "{", "index", BCON_UTF8("<index name>"), "text", "{", "query", BCON_UTF8("Alabama"), "path", BCON_UTF8("title"), "}", "}", "}", "{", "$project", "{", "title", BCON_INT32(1), "}", "}", "]"); mongoc_cursor_t *results = mongoc_collection_aggregate(collection, MONGOC_QUERY_NONE, pipeline, NULL, NULL); while (mongoc_cursor_next(results, &doc)) { char *str = bson_as_canonical_extended_json(doc, NULL); printf("%s\n", str); bson_free(str); } bson_destroy(pipeline); mongoc_cursor_destroy(results);
{ "_id" : { "$oid" : "..." }, "title" : "Alabama Moon" } { "_id" : { "$oid" : "..." }, "title" : "Sweet Home Alabama" } { "_id" : { "$oid" : "..." }, "title" : "Crazy in Alabama" }
Informações adicionais
Para saber mais sobre o MongoDB Search, consulte MongoDB Search na documentação do Atlas .
Documentação da API
Para saber mais sobre a função mongoc_collection_aggregate(), consulte a documentação API.