Doctrine ODM (MongoDB) を使用しており、次のようなものがあります
Attendee資料Answer資料- それぞれが
Answer1 つを参照しAttendeeます。(一対多の関係)
私は次のようなことをします
attendees = attendeeRepo.findby(whatever)
foreach(attendees as attendee)
answers = attendee.getAnswers()
ここでの問題は、attendee.getAnswers()Doctrine ODM ごとに次のようなクエリを実行することです。
db.TicketAnswer.find({
"attendee.$id": ObjectId("50ae80608ead0ea71e00008b")
})
100 人の参加者がいる場合、このような 100 のクエリが実行されるためAnswers、ループの前にすべてをプリロードしようとしていました。しかし、それは私が期待したようには機能しませんでした。
これは 1 対多の関係であり、関係 ( ) の片側にAttendee多 ( ) をロードするように依頼したため、期待どおりに機能しなかったと思いAnswerます。私が反対のことをしている他のケースでは、プリロードは期待どおりに機能します。
そのような場合の最善の解決策が何であるかはわかりません。誰かが助けることができるアイデアを持っているなら。