Overview
在本指南中,您可以学习;了解如何使用C驾驶员对集合运行 MongoDB搜索查询。 MongoDB Search 使您能够对MongoDB Atlas上托管的集合执行全文搜索。 MongoDB Search 索引指定搜索行为以及要索引的字段。
样本数据
moviessample_mflix本指南中的示例使用Atlas示例数据集的 数据库中的 集合。要学习;了解如何创建免费的MongoDB Atlas 群集并加载示例数据集,请参阅 入门指南。
运行MongoDB搜索查询
本部分介绍如何创建聚合管道以对集合运行MongoDB搜索查询。在表示管道阶段的 bson_t 结构中,添加 $search 阶段以指定搜索条件。然后,调用 mongoc_collection_aggregate() 函数并将管道作为参数传递。
提示
如需了解更多关于聚合操作的信息,请参阅聚合指南。
在运行MongoDB Search查询之前,您必须在集合上创建MongoDB Search索引。要学习;了解如何以编程方式创建MongoDB搜索索引,请参阅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。
API 文档
要学习;了解有关 mongoc_collection_aggregate() 函数的详情,请参阅API文档。