このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

参照用 記事

MongoDB, BSON, SON, Ocument

MongoDBに関するチョットした話。

MongoDBの基礎となるデータ形式BSONです。BSONは、しばしば Binary JSON と記述されますが、「唐突に MongoDB の話」で触れたように、バイナリーエンコードされたJSONと捉えるのは正確ではありません。http://api.mongodb.org/python/1.9%2B/api/bson/son.html などでは、Binary SON の略記として扱っているようです。

では、SONとは何か? Serialized Ocument Notation だそうです。Ocumentって言葉が出てきますが、辞書にはない単語です。オブジェクトのようなドキュメントのような、そんなデータがたぶんOcumentなんでしょう。単に書き間違えてるのを直さないだけかも? と疑ったりもしますが、、、??

まーともかく、オキュメントという言葉を使うことにすれば、MongoDBのデータは次のように階層化されます。

  1. データベースはコレクションの集まりである。
  2. コレクションはオキュメントの集まりである。
  3. オキュメントはフィールドの集まりであるが、フィールド(項目またはプロパティ)の出現順序は意味を持つ。

オブジェクト・プロパティの出現順序を考慮する点がJSONとの大きな違いです。PythonのMongoDBドライバでは、ライブラリがdict(辞書)のキーを常にソートすることにより、プログラマはプロパティの出現順序を気にしなくていいようにしています。でも、これはあくまでライブラリの機能であることに注意してください。MongoDB/BSONネイティブでは出現順序にセンシティブです。