Я пытаюсь извлечь объект из моего экземпляра MongoDB. Я использую библиотеку JsonCPP.Получение ID из 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")
}
- идентификатор объекта не находится в двойных кавычках.
Теперь мой вопрос: как я могу извлечь идентификатор документа с помощью библиотеки jsoncpp? Могу ли я что-то изменить в настройках моего экземпляра MongoDB, чтобы получить синтаксически правильные сопоставления ключевых значений id? Я знаю, есть драйвер MongoDB для CPP, но я не могу его использовать (по нескольким причинам ...). Любая помощь оценивается.
То, что вы пытаетесь сделать, обречено на бесконечное разочарование. Просто используйте драйвер. Вы говорите, что не можете использовать один из драйверов C++? Почему нет? Даже тогда, почему бы просто не использовать драйвер C? – acm