从 mongo 结果中获取数据的方法比逐个字段更快?

Faster way to get data out of mongo results than field-by-field?

是否有比如下逐字段解析更快的方法将 mongo 结果解析回数据结构?我目前正在这样做,但速度很慢。

mongocxx::cursor cursor = m_coll.find(<some-query>);
for (bsoncxx::document::view doc : cursor)
{
    RecreatedObj readback;
    readback.Area = doc["Area"].get_int32();
    readback.fieldOne = doc["fieldOne"].get_double();
    readback.fieldTwo = doc["fieldTwo"].get_double();
    readback.fieldThree = doc["fieldThree"].get_int32();
    ...
}

字段查找是 O(N),所以您无意中编写了一个 O(N^2) 算法。

一种更快的方法是遍历文档视图中的字段并在 switch/case 字段名称中进行分配。