还是有从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