Mongoid で 1...N の関係をセットアップしています
class Student < User
include Mongoid::Document
...
has_many :courses
class Course
include Mongoid::Document
belongs_to :student
私には2人の生徒がいます
student1 = Student.create!(...)
student2 = Student.create!(...)
course1 = Course.create!(name: "Course 1")
course2 = Course.create!(name: "Course 2")
course3 = Course.create!(name: "Course 3")
student1.courses = [course1,course2]
student1.save!
student2.courses = [course2,course3]
student2.save!
理想的にはmongodbで欲しいもの
Student{
coures:[CourseId,CourseId,CourseId]
}
私が得たものは、2つの面で理想的ではありませんでした
a) リレーションシップは Coures に保存されます (これは mongoid のドキュメントのとおりだと思いますが、これをひっくり返すことができるかどうか疑問に思っています)。
b) コースは、コレクションではなく単一の学生 ID のみを保存しています。したがって、データを失います \
例えばモンゴで
Courses
{
"_id" : ObjectId("51f607bdb5b6057c92000005"),
"name" : "Course 1",
"student_id" : ObjectId("51f607bdb5b6057c92000002"),
}
{
"_id" : ObjectId("51f607bdb5b6057c92000006"),
"name" : "Course 2",
"student_id" : ObjectId("51f607bdb5b6057c92000003"),
}
{
"name" : "Course 3",
"student_id" : ObjectId("51f607bdb5b6057c92000003"),
}
http://mongoid.org/en/mongoid/docs/relations.html#has_many がこれが正しいことを示していることを理解しています。
しかし、それは私が期待したものではありません。私がやろうとしていることと何か関係がありますか?