0

ライブラリにそうするように頼んでいるわけではなく、bson_to_jsonとのコードを書いているだけですjson_to_bson

ここにBSON仕様があります。

通常の double、doc、array、string の場合は問題なく、BSON と JSON の間で簡単に変換できます。

ただし、次のような特定のオブジェクトについては、

TimestampUTC:

JSON から BSON に変換する場合、それらがタイムスタンプと utc であることをどのように知ることができますか?

Regex(文字列、文字列)、JavaScript code with scope(文字列、ドキュメント)

それらの構造には複数の部分がありますが、JSON で構造を表現するにはどうすればよいですか?

Binary data(ジェネリック、関数など)`

JSON でバイナリ データのタイプを表示するにはどうすればよいですか?

int32int64

BSON が 32 ビットか 64 ビットかを認識できるように、それらを JSON で表示するにはどうすればよいですか?

ありがとう

4

1 に答える 1

1

JSON ではオブジェクトを表現できないことがわかっているため、BSON オブジェクト (フィールド タイプ) の文字列化されたバージョンを ocaml ドライバーの出力内でどのように表現するかを決定する必要があります。

一部のデータ型は簡単ですが、Timestampシャーディングのみの内部であるため必要ありません。ブロックは、MR で使用する保存された関数としてJavascriptのみ使用するのが最適であるため、除外するのが最適です。system.js

また、これらのフィールドのいくつかは、実際には in と out の両方であることも考慮する必要があります。in と out とは、BSON にシリアル化する入力ドキュメントを指定するために使用されるものもあれば、BSON から JSON に逆シリアル化する必要がある出力ドキュメントの一部であるということです。

Regexあなたが送信するフィールドタイプである可能性が最も高いものです。{$regex: 'd', '$options': 'ig'}そのため、ocaml オブジェクトを/d/igPCRE 表現と同等の BSON にシリアライズする必要があります。

Dates は、表現に ISODate 文字列またはタイムスタンプを使用することを選択することで、JSON で表現できます。出力は次のようになり、必要な表示に{$sec:556675,$usec:6787}変換でき$secます。

BinaryJSON のデータは、data(私の記憶が正しければ) 出力ドキュメントからプロパティを取得し、それを Base 64 にエンコードして、フィールドにスターリングとして格納することで表すことができます。

int32int6464 ビットの int が 2147483647 よりも大きくなることを除いて、JSON の 2 つの間に実際の定義はありません。そのため、そこでデータ型を一意に保つことができるかどうかはわかりません。

それはあなたが始めるのを助けるはずです。

于 2013-04-30T14:43:34.033 に答える