我有一堆记录存储在 mongodb 集合(StudentRecord)中。这些需要分解为具有嵌入式文档 StudentGrade 的 Student 类型的集合。出于某种原因,我用来执行此摄取的 rake 任务不断达到“堆栈级别太深”。我无法检测到任何递归调用,我正在使用 bundle exec 来执行它(ruby 1.9.2-p320)。
任务:parse_student_records =>:环境做
StudentRecord.all.each{|student_record|
学生 = Student.create({:name => student_record.name})
student.grades « Grade.create({:score => student_record.grade_score)
学生。保存!
}
结尾
班级学生
包括 MongoMapper::Document
许多:等级
键:名称,字符串
结尾
班级成绩
包括 MongoMapper::EmbeddedDocument
键:grade_score,字符串
结尾
将文档作为独立文档而不是嵌入文档来修复它..由于某种原因,嵌入会导致问题。