我认为我应该在这里做的很明显 - 查询集合m_coll,并从该集合中获取Density的所有唯一值。然而,它返回的东西是一个元素,而不是一个完整的文档,所以你似乎无法键入它,它会尖叫你,即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;
}
答案 0 :(得分:1)
这真是模糊不清,记录不清,为此我道歉。我已经开了一张Jira票,CXX-1406,关于改进文档和提供示例。
distinct
方法返回一个游标,但它只提供一个如下所示的文档:
{
"values" : [ "A", "B" ],
"ok" : 1
}
这正是distinct数据库命令返回的内容。
您可以在tests for distinct中查看使用示例。
有一张票,CXX-1126,用于更好的API,但这将是一个重大改变,所以我们不确定何时会解决它。