使用JsonCPP从MongoDB获取ID
Getting ID from MongoDB using JsonCPP
我正试图从我的MongoDB实例中检索对象。我正在使用JsonCPP库。
目前,我正在做的是:
system(("mongo --host " + host_name + " --port " + std::to_string(port) + " " + database_name + " --eval 'db." + collection_name + ".find({},{_id:0})' | tee -a return_from_db.json").c_str());
然后使用:
进行解析Json::Value json_object;
Json::Reader jsonreader.parse(ifstream_from_return_from_db_json, json_object, false);
只要我没有在我的查询中抑制_id字段,我会得到空值无处不在。原因如下:
{
"_id": ObjectId("any_id")
}
- 对象ID不在双引号中。
现在我的问题:我如何使用jsoncpp库提取文档的ID ?我可以改变我的MongoDB实例的设置,以获得语法正确的id键值映射的东西吗?我知道,有MongoDB驱动程序的CPP,但我不能使用它(有几个原因…)。感谢任何帮助。
MongoDB shell只看起来像JSON。它提供了一个自定义的扩展表单来保存纯JSON中不可用的类型信息,因此您的方法不适用于包含此类类型的任何文档投影。
你可以在扩展JSON文档中阅读更多信息(参见"Shell模式")。
如果你不能使用驱动程序,你可能想要探索一个第三方REST接口来代替。
相关文章:
- 如何获取 GLFW 窗口 ID?
- Direct3D 11 - HLSL - 获取顶点索引 ID
- 类型ID,如何仅获取类型名称
- 如何通过向量中的结构 id 获取索引号
- 获取 c++ mfc vs2015 中弹出资源菜单项的 id
- 无法获取进程 ID 4 (ntoskrnl.exe) 的可执行路径
- 在运行之前获取 std::thread's thread:id?
- 从 C++ 中的二进制路径(命令行语句)获取进程 ID
- 以编程方式获取 Samba 共享卷 ID
- C++ 通过进程 ID 获取进程的名称
- 从资源 ID 获取 CButton 控件名称?
- C++ 在运行时获取具有 ID 的对象
- 我想使用 C++ 从 excel 获取记录,并希望使用特定的列数据(例如书籍 ID)控制输出
- 在乌鸦中获取非Int(字符串)URL资源ID
- 如何获取正确的线程 ID 和值
- 如何使用 QSqlQuery 和 SQLite 从新插入的行中获取 ID
- 获取 id 字段作为 QSqlTableModel 中记录的整数
- 如何按名称获取 id 顶点
- 如何使用信号和插槽从qt表单中获取id,然后在链表中搜索它并使用另一个表单显示结果
- 使用JsonCPP从MongoDB获取ID