mongodb - mongoid 嵌套哈希和数组不起作用
问题描述
我对使用 MongoID 的 MongoDB 有疑问。我希望有人可以帮助我。DB 中的对象具有以下结构。(集合名称是崩溃)。抱歉命名不好。我必须改变这一点。
{
id:String,
title:String,
new:String,
crash:[
{
crash_reason: {
id:String,
call:String
},
crashes: [
{
id:String,
app_id:String,
info:String
},
{
id:String,
app_id:String,
info:String
},
... and many more
],
},
{
crash_reason: {
id:String,
call:String
},
crashes: [
{
id:String,
app_id:String,
info:String
},
{
id:String,
app_id:String,
info:String
},
... and many more
],
},
...
]
}
所以当我把它变成文字时。一个对象有一些主要值......和一个崩溃数组。崩溃数组包含所有崩溃。每次崩溃再次将一些主要值作为哈希存储在 crash_reason 中,之后还有另一个数组,其中包含所有崩溃
现在我想使用 MongoID(和 Sinatra),但是当我尝试初始化它时,我似乎做错了。
class Crashes
include Mongoid::Document
field :id, type: String
field :title, type: String
field :new, type: String
embeds_many :crash
accepts_nested_attributes_for :crash
end
class Crash
include Mongoid::Document
embeds_one :crashreason
embeds_many :crashesm
embedded_in :crashes
accepts_nested_attributes_for :crashesmulti, :crashreason
end
class Crashreason
include Mongoid::Document
field :id, type: String
field :call, type: String
embedded_in :crash
end
class Crashesmulti
include Mongoid::Document
field :id, type: String
field :app_id, type: String
field :info, type: String
embedded_in :crash
end
然后我想做一个简单的查询:
get '/mongo' do
all_c = Crashes.all
all_c.to_json
@mongo = all_c
haml:mongo
end
但我收到以下错误。我不知道我做错了什么。嵌套错了吗?我可以只嵌套不同的集合而必须使用 ARRAY 和 HASH 类型吗?如果是,我该如何参数化它们?
NoMethodError at /mongo
undefined method `relations' for file: embedded_in.rb location: determine_inverses
我还查看了文档。但是关于嵌套的东西,没有太多:-(。
解决方案
推荐阅读
- python - 从特定列中删除具有异常值的行
- python - 发生异常:TypeError 无法解压不可迭代的 NoneType 对象
- c - 为什么可以重新定义 C 库函数?
- php - 问题:当我更改文本区域的内容时,无法更新 db 值类型文本
- python - FieldError django
- java - 使用@Autowire 注入 bean 后的空值
- asp.net - 在 ASP.NET Core MVC 中使用唯一的电子邮件或唯一的用户名注册
- php - IIS10 + WordPress。登录页面失败:表单提交时刷新且没有错误,恢复页面刷新时出现错误:输入用户名或电子邮件地址
- unity3d - 如何在非 Unity3d 项目中包含 Unity3d 库?
- r - 是否有更干燥的代码来计算 8 列的平均值