如何使用 mongocxx 驱动程序删除索引

How to drop index using mongocxx driver

我的程序提供了一个可配置的 ttl。所以我必须在每次程序启动时检查 ttl 索引,如果过期时间不正确,我必须重新索引它。

我在 mongoc 驱动程序中看到了 drop index 函数。但似乎在 mongocxx 驱动程序中没有这样的选项。我是否遗漏了任何 api 或是否有任何方法可以访问底层 mongoc_collection_t 对象,以便我可以调用 mongoc 驱动程序函数?

如果要删除单个索引,可以使用 drop_one,或者使用索引名称:

db["collection"].indexes().drop_one("department_1");

或带文件:

db["collection"].indexes().drop_one(make_document(kvp("department", 1)));

小心,因为如果索引不存在,它会抛出。

要删除所有索引,您可以使用 drop_all:

db["collection"].indexes().drop_all();

您在 test/index_view.cpp

处有更多示例