2

私はこのようなものが必要です:

{
    "Field1" : "Value1",
    "Field2" : "Value2",
    "Fields3": [
              { "Field311" : Value311, "Field312" : Value312},
              { "Field321" : Value321, "Field322" : Value322},
              { "Field331" : Value323, "Field333" : [
                              ... some more fields here
              ]}
     ]
}

json 文字列から Fields1-2 を取得し、それらを mongo::BSONObj に変換します。次に、次のように Field3 をルートに追加します。

mongo::BSONArray arr;
root["Field3"].Obj=arr;

その後、Field3をサイクルで埋めたいのですが、BSONObjを配列に正しく追加する方法がわかりません。C# ドライバに「Add」メソッドを見つけましたが、C++ にはそのようなものはありません。Google は ArrayBuilder を使用するようにアドバイスしていますが、その方法がわかりません。教えてください、どうすればいいですか?いくつかの例は非常に役立ちます。

また、質問: BSONObj と BSONElement、いくつかのビルダーなどがあるのはなぜですか? 超単純な JsonCpp ([] と = 演算子と append() メソッドを使用するだけですべてが行われる) の後で、すべてが非常に複雑に見えます。

4

1 に答える 1

0

BSONArrayBuilder の簡単な使用例は、 http ://www.mongodb.org/pages/viewpage.action?pageId=19562815 にあります。

対応するドキュメントはここにあります: http://api.mongodb.org/cplusplus/current/classmongo_1_1_b_s_o_n_array_builder.html

JsonCpp は独立して開発されたライブラリであるため、その動作と MongoDB の BSON 実装の動作には、良くも悪くも多くの違いがあります。BSON ライブラリは MongoDB 全体で広く使用されているため、その要件は JsonCpp の要件とは大きく異なります。

お役に立てれば!

于 2012-04-16T15:29:01.983 に答える