2016-08-16 9 views
0

MongoDBインスタンスからオブジェクトを取得しようとしています。私はJsonCPPライブラリを使用しています。私はよ、私は私のクエリで_idフィールドを抑制するわけではないとすぐにJongCPPを使用してMongoDBからIDを取得する

Json::Value json_object; 
Json::Reader jsonreader.parse(ifstream_from_return_from_db_json, json_object, false); 

を:

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()); 

と使用上、後でそれを解析:

現在、私がやっていることですどこでもヌル値を取得します。その理由は次のとおりです。

{ 
    "_id": ObjectId("any_id") 
} 
  • オブジェクトIDは、二重引用符ではありません。

私の質問:jsoncppライブラリを使用してドキュメントのIDを抽出するにはどうすればよいですか?構文的に正しいIDのキーと値のマッピングを取得するために、MongoDBインスタンスの設定で何かを変更できますか? CPP用のMongoDBドライバがありますが、使用できません(いくつかの理由で...)。どんな助けもありがたい。

+0

あなたがしようとしていることは、無限の欲求不満に終わってしまいます。ドライバを使うだけです。あなたは、C++ドライバの1つを使用できないと言っていますか?何故なの?それでも、Cドライバを使わないのはなぜですか? – acm

答えて

0

MongoDBシェルはJSONのように見えます。純粋なJSONでは使用できない型情報を保持するための拡張カスタムフォームが用意されているため、そのような型を含むドキュメントの投影には対応できません。

詳細については、Extended JSON docs(「シェルモード」を参照)を参照してください。

ドライバを使用できない場合は、代わりにthird party REST interfaceを検索してください。

関連する問題