Doctrine ODM (MongoDB) を使用しており、次のようなものがあります
Attendee
資料Answer
資料- それぞれが
Answer
1 つを参照し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
ます。私が反対のことをしている他のケースでは、プリロードは期待どおりに機能します。
そのような場合の最善の解決策が何であるかはわかりません。誰かが助けることができるアイデアを持っているなら。