2016-04-02 57 views
3

新しいC++ 11 mongoDBドライバ(Legacyドライバではありません)を使用しています。mongoDB C++ 11ドライバがドキュメントのIDを取得する

私は新しい文書を挿入した後、mongoDBで文書の 'id'を取得しようとしています。このIDは戻り値 'retVal3'にあります。

struct core::v1::optional<mongocxx::v_noabi::result::insert_one> retVal3 = collection.insert_one(document.view()); 

これはautoコマンドを使用しない操作です。私はEclipseがこれを解決してIDを取得できるようになることを願っていました。動作しませんでした。

デバッグ中に私はIDを見ることができます。 12バイトの配列に保存されます。 16進数で表示すると、IDが表示されます。このarryはこの構造体の深い深いところにあります。

これらの12バイトをこの構造体/オブジェクトから取得する方法はわかりません。 それはオブジェクトですか?

機能はありますか? 他の方法で解決する方法はありますか?

+0

attemtは、例faildのように指示を出します。 '_generated_id'はプライベートです。 'retVal3.val._generated_id._b_oid.value._bytes [];'コンパイラ:bsoncxx :: v_noabi :: types :: value mongocxx :: v_noabi :: result :: insert_one :: _ generated_id 'はプライベートです –

答えて

4
auto retVal = db.insert_one(hey.view()); // Part where document is uploaded to database 
    bsoncxx::oid oid = retVal->inserted_id().get_oid().value; 
    std::string JobID = oid.to_string(); 

Thxを私はMongoDBのチームを尋ねました。この作業応答=を得ました)。

関連する問題