0

我认为我在这里尝试做的事情应该相当明显 - 查询集合 m_coll,并从该集合中获取所有唯一的密度值。但是,它返回的是一个元素,而不是完整的文档,因此您似乎无法键入它,并且它对您大喊大叫,即C++ exception with description "unset document::element" thrown in the test body.. 需要进行哪些修改才能完成这项工作?

std::vector<int> MongoReader::getLvlOne()
{
    std::vector<int> ret;
    bsoncxx::builder::stream::document empty;
    mongocxx::cursor cursor = m_coll.distinct("Density",empty.view());
    for (bsoncxx::document::view doc : cursor)
    {
        ret.push_back(doc["Density"].get_int32());
    }
    return ret;
}
4

1 回答 1

1

这确实是晦涩难懂且记录不充分的,对此我深表歉意。我已经打开了 Jira 票证CXX-1406,关于改进文档并提供示例。

distinct方法返回一个游标,但它只提供一个如下所示的文档:

{
   "values" : [ "A", "B" ],
   "ok" : 1
}

这正是distinct数据库命令返回的内容。

您可以在distinct 的测试中看到一个使用示例。

有一张票CXX-1126用于获得更好的 API,但这将是一个重大更改,因此我们不确定何时会解决它。

于 2017-07-24T15:12:26.297 回答