Docs 菜单
Docs 主页
/ /

运行MongoDB搜索查询

在本指南中,您可以学习;了解如何使用C驾驶员对集合运行 MongoDB搜索查询。 MongoDB Search 使您能够对MongoDB Atlas上托管的集合执行全文搜索。 MongoDB Search 索引指定搜索行为以及要索引的字段。

moviessample_mflix本指南中的示例使用Atlas示例数据集的 数据库中的 集合。要学习;了解如何创建免费的MongoDB Atlas 群集并加载示例数据集,请参阅 入门指南。

本部分介绍如何创建聚合管道以对集合运行MongoDB搜索查询。在表示管道阶段的 bson_t 结构中,添加 $search 阶段以指定搜索条件。然后,调用 mongoc_collection_aggregate() 函数并将管道作为参数传递。

提示

如需了解更多关于聚合操作的信息,请参阅聚合指南。

在运行MongoDB Search查询之前,您必须在集合上创建MongoDB Search索引。要学习;了解如何以编程方式创建MongoDB搜索索引,请参阅MongoDB搜索索引指南的创建搜索索引部分。

此示例通过执行以下操作来运行MongoDB搜索查询:

  • 创建一个 $search 阶段,指示驱动程序查询title字段包含单词 "Alabama" 的文档

  • 创建一个 $project 阶段,指示驱动程序在查询结果中包含 title 字段

  • 将管道阶段传递给 mongoc_collection_aggregate() 函数并打印结果

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" }

要学习;了解有关MongoDB Search 的更多信息,请参阅Atlas文档中的MongoDB Search。

要学习;了解有关 mongoc_collection_aggregate() 函数的详情,请参阅API文档。

后退

运行数据库命令

在此页面上