本文整理汇总了C++中RepoBSON::removeField方法的典型用法代码示例。如果您正苦于以下问题:C++ RepoBSON::removeField方法的具体用法?C++ RepoBSON::removeField怎么用?C++ RepoBSON::removeField使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类RepoBSON
的用法示例。
在下文中一共展示了RepoBSON::removeField方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: cloneAndShrink
RepoBSON RepoBSON::cloneAndShrink() const
{
std::set<std::string> fields;
std::unordered_map< std::string, std::pair<std::string, std::vector<uint8_t>>> rawFiles(bigFiles.begin(), bigFiles.end());
std::string uniqueIDStr = hasField(REPO_LABEL_ID) ? UUIDtoString(getUUIDField(REPO_LABEL_ID)) : UUIDtoString(generateUUID());
getFieldNames(fields);
RepoBSON resultBson = *this;
for (const std::string &field : fields)
{
if (getField(field).type() == ElementType::BINARY)
{
std::string fileName = uniqueIDStr + "_" + field;
rawFiles[field] = std::pair<std::string, std::vector<uint8_t>>(fileName, std::vector<uint8_t>());
getBinaryFieldAsVector(field, &rawFiles[field].second);
resultBson = resultBson.removeField(field);
}
}
return RepoBSON(resultBson, rawFiles);
}