gpt4 book ai didi

mongodb - 有 YAML 数据库吗?

转载 作者:IT老高 更新时间:2023-10-28 13:07:51 27 4
gpt4 key购买 nike

我非常喜欢 YAML 的数据模型,它保留了 JSON 的大部分简单性,并通过一些有时很重要的功能(例如自定义数据类型和引用)对其进行了扩展。

那么有没有什么方法可以在 YAML 数据模型(或非常类似的东西)中存储大量数据并使用索引进行查询?类似于 YAML 数据库,类似于 XML databases或 JSON 数据库,如 Mongo DB。或者是否有一个从 YAML 到 Mongo DB 之类的映射器,可以让我透明地将它用作 YAML 存储?

我没有找到任何东西,所以也许没有。为什么会这样?这是一个愚蠢的想法还是 YAML 太年轻了,他们会来?

最佳答案

Or is there a mapper from YAML to something like Mongo DB that lets me transparently use it as a YAML store?

据我所知,不是直接的。

主要问题似乎是 Mongo DB 的接口(interface)基于散列(即键值对)。所以本质上你是在问是否有从 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)

我知道这并不能直接回答你的问题,但希望它仍然有帮助。

约翰

关于mongodb - 有 YAML 数据库吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15042413/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com