MongoCXX - 处理来自非重复的游标



我认为我在这里要做的事情应该很明显 - 查询集合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;
}

这真的很晦涩难懂,记录也很差,对此我深表歉意。 我已经打开了一个 Jira 票证 CXX-1406,关于改进文档并提供示例。

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

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

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

您可以在测试中看到不同的用法示例。

有一个票证,CXX-1126,一个更好的API,但这将是一个重大变化,所以我们不确定什么时候会解决它。

最新更新