か、私には透過的にYAMLストアとしてそれを使用することができますモンゴDBのようなものにYAMLからマッパーはありますか?
私が知る限りでは直接にはありません。
主な問題は、Mongo DBのインターフェイスがハッシュ(キーと値のペア)に基づいているようです。したがって、本質的にYAMLからハッシュまでのマッパーがあるかどうかを尋ねています。 YAMLは任意の構造体を格納できるため、ハッシュはできません。
しかし、あなたはあなたのオブジェクトを簡素化するために喜んでいる場合は、部分的にこれを行うことができるかもしれない:
class SomeObject
def initialize
@bob = 'abc'
@fred = 'cde'
end
def to_hash
h = {}
instance_variables.sort.each do |v|
h[v] = instance_variable_get(v)
end
return h
end
あなたはto_yamlコードを見れば、あなたはそれがto_hash方法と非常に似ていることがわかります(それは私が考えを得た場所なので)。
おそらくfrom_hashメソッドも必要になることに注意してください。そして、あなたは、おそらくオブジェクトであるインスタンス変数を持つクラスのためのスキームを出し作業を開始したい(すなわちなどの文字列、記号、だけではなく)
今のmongoコード項目を挿入するには:
include Mongo
db = MongoClient.new.db('test')
stuff = db.collection('stuff')
item = SomeClass.new()
... other code ...
stuff.insert(item.to_hash)
Iこれはあなたの質問に直接答えないことを認識していますが、それでもうまくいけば助かります。
ジョン
私はあなたが探しているものを正確にはわかりません... ...? YAMLからプラットフォーム固有のモデル(多くは[WikiPedia](http://en.wikipedia.org/wiki/YAML)に掲載されています)に変換するライブラリはたくさんあります。これらのモデルから、MongoDB用の多くのプラットフォームドライバの1つを使用して、/ etcを保存して照会することができます。 – WiredPrairie
私はYAMLファイルのインポートに興味はありませんが、YAMLに似たデータモデルを持つデータベースを持っています。これを明確にするために質問を更新しました。 – mb21
何十種類もの文書ベースの "NoSQL"データベースと提案している "YAML"データベースの違いは何ですか? – WiredPrairie