我正在使用 Doctrine ODM (MongoDB),我有类似以下的内容
Attendee
文档Answer
文档- 每个
Answer
参考一个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
在循环之前预加载所有查询。但它没有像我预期的那样工作。
我想它没有像我预期的那样工作,因为这是一个一对多的关系,我要求关系的一侧(Attendee
)加载许多(Answer
)。在其他情况下,当我做相反的事情时,预加载会按预期工作。
我不确定这种情况的最佳解决方案是什么。希望有人有可以提供帮助的想法。