通过c++驱动程序从MongoDB中批量删除
Bulk remove from MongoDB collection via C++ driver
我使用MongoDB c++驱动程序(遗留)制作了一个简单的复制器。现在我想加快速度。矢量插入的插入操作要快得多(批量插入和单元素插入的时间差不多)。但我不知道删除一堆文件的最佳选择是什么。我有文档,我想删除作为mongo::BSONObj(与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());
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组的地址分配给变量并删除
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- C/C++编译器通常会删除重复的库吗
- 从链接列表c++中删除一个项目
- C++如何通过用户输入删除列表元素
- 为什么在C++中使用私有复制构造函数与删除复制构造函数
- 是否需要删除包含对象的"pair"?
- 如何在自删除后将对象设置为nullptr
- 迭代时从向量和内存中删除对象
- 使用函数"remove"删除重复元素
- 如何从多映射中删除特定的重复项
- 运算符C++ "delete []"仅删除 2 个前值
- 删除指向指针的指针是运行时错误吗
- 将指针设置为"nullptr"并不能防止双重删除?
- 为什么示例代码访问IUnknown中已删除的内存
- 如何通过 getter 函数删除矢量的元素?
- 从控制台中删除最后打印的元素
- 通过c++驱动程序从MongoDB中批量删除
- 如何使用c++删除mongodb集合