我是Ruby和Mongoid的新手,我需要一些帮助来创建模型和建模文档。
这是文档必须具有的结构
{
key1 : "value",
key2 : "value",
key3 : {
key3.1 : "value",
key3.2 : [array]
},
key4 : {
key4.1 : "value",
key4.2 : [
{
"key4.2.1" : "value",
"key4.2.2" : "value",
"key4.2.3" : "value",
"key4.2.4" : [
"key4.3.1" : "value",
"key4.3.1" : "value",
]
},
...
]
}
}
我的模型看起来像这样:
class Model
include Mongoid::Document
field :key1, type: Integer
field :key2, type: Integer
field :key3, type: Hash
field :key4, type: Hash
end
可以用MongoId制作这个结构吗? 我知道我的模型不正确且不完整。
答案 0 :(得分:0)
我不确定你的意思是key4.2.4是一个有键值的数组,但是Mongoid会按照定义保存你的对象。
使用简化模型:
class Model
include Mongoid::Document
field :key1, type:Integer
field :key2, type:Hash
end
你可以这样运动:
m = Model.new
m.key1 = 12
m.key2 = {a: 1, b:[{c: 2, e: [23,34]}]}
m.save
Model.first
=> #<Model _id: 53ab8ed1cac11f4c94000004, key1: 12, key2: {"a"=>1, "b"=>[{"c"=>2, "e"=>[23, 34]}]}>
因此,您可以看到所有嵌入的哈希值和数组都保存到MongoDB并由Mongoid检索而没有任何问题。
还可以使用嵌入文档(其封闭文档中包含的另一个Mongoid文档)或相关文档,其中相关文档的密钥存储在父文档中。如果您想这样做,http://mongoid.org/en/mongoid/docs/relations.html上的文档应该会有所帮助。