還是有從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方法。你可能要開始工作了一個方案與實例變量是對象(即不只是字符串,符號等)
現在蒙戈代碼中插入該項目類:
include Mongo
db = MongoClient.new.db('test')
stuff = db.collection('stuff')
item = SomeClass.new()
... other code ...
stuff.insert(item.to_hash)
我意識到這並不直接回答你的問題,但希望它仍然有幫助。
約翰
我不確定你在找什麼... ...?有許多庫可以從YAML轉換爲特定於平臺的模型(許多在[WikiPedia](http://en.wikipedia.org/wiki/YAML)上列出)。從這些模型中,您可以使用MongoDB的許多平臺驅動程序之一來存儲和查詢/ etc。 – WiredPrairie 2013-02-23 17:02:57
我對導入YAML文件並不是很感興趣,而是有一個數據庫與YAML類似的數據模型。我更新了這個問題來澄清這一點。 – mb21 2013-02-23 18:29:01
許多幾十個基於文檔的「NoSQL」數據庫與您提出的「YAML」數據庫之間有什麼區別? – WiredPrairie 2013-02-23 19:13:02