3
쿼리 has_many 현재이 컬렉션 학생 과정 (주제 내장)Mongoid 내가 아주 간단한 MongoDB의 모델이
class Student < User
include Mongoid::Document
has_many :courses
class Course
include Mongoid::Document
belongs_to :student
embeds_many :subjects
내가 mongoid이 has_many 직접 즉
Student.courses
에게 질의를 지원하지 않습니다 알고
그래서 학생 대상을 얻고 싶다면 이것이 유일한 방법입니다.
,083,210이 현재 3 개 쿼리
MOPED: 127.0.0.1:27017 QUERY database=test collection=users selector= {"$query"=>{"_type"=>{"$in"=>["Student"]}}, "$orderby"=>{:_id=>1}} flags=[:slave_ok] limit=-1 skip=0 batch_size=nil fields=nil (1.1775ms)
MOPED: 127.0.0.1:27017 QUERY database=test collection=courses selector={"student_id"=>"51f09457b5b605db25000002"} flags=[:slave_ok] limit=0 skip=0 batch_size=nil fields=nil (0.8862ms)
MOPED: 127.0.0.1:27017 QUERY database=test collection=courses selector={"_id"=>"51f09457b5b605db25000003"} flags=[:slave_ok] limit=0 skip=0 batch_size=nil fields=nil (0.8380ms)
보다 효율적인 방법이 있나요
합니까? 나는 Course in Student를 삽입 할 수 있지만 Courses Collection에 직접 문의하는 것을보고있다.
그게 더 좋습니다. .map function()에 대한 문서를 찾으려고하면 그 위치를 알 수 있습니까? – dboyd68
쿼리 포인트에서 @ student.courses와 @ student.courses.map (& : id)를 사용하는 데 어떤 차이가없는 것 같습니까? 존재하지 않습니다. – dboyd68
Array # map은 배열을 반복하고 각 값을 블록에 전달하고 블록의 반환 값을 새로운 배열로 수집하는 표준 Ruby 메서드입니다. –