gpt4 book ai didi

c++ - 通过 C++ 驱动程序从 MongoDB 集合中批量删除

转载 作者:可可西里 更新时间:2023-11-01 10:42:51 32 4
gpt4 key购买 nike

我使用 MongoDB C++ 驱动程序(旧版)制作了一个简单的复制器。现在我想加快速度。 vector 插入的插入操作要快得多(批量插入与单个元素插入显示的时间大致相同)。但我不知道什么是删除一堆文件的最佳选择。我有要删除的文档,作为 mongo::BSONObj 的 vector (带有 ObjectId)。

最佳答案

我对 ObjectId 进行了查询,以针对每一堆文档进行一次删除。像这样

            {"_id" : {$in : [ObjectId("..."), ...]}}

它显示出更好的性能。这是我在 C++ 中的示例代码

            std::vector<mongo::BSONObj> bulk_data;
...
std::stringstream ss;
ss << "{\"_id\" : {$in : [";
for(size_t j = 0; j < bulk_data.size(); ++j)
{
if(j != 0)
ss << ",";
ss << "ObjectId(\"" << bulk_data[j]["_id"].OID() << "\")";
}
ss << "]}}";
conn_src->remove( "test.col1" , ss.str());

关于c++ - 通过 C++ 驱动程序从 MongoDB 集合中批量删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32845144/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com