【发布时间】:2013-07-09 13:35:58
【问题描述】:
public Class Team{
@Id
String id;
String name = "";
}
public Class Player{
@Id
String id;
String team_id = "";
String name = "";
}
我应该在 MongoDB 上执行“查找”以使团队与玩家相关联吗? 我正在使用以下内容:
Iterator<Player> plist = Player.findAllIter();
while (plist.hasNext()) {
Player p = plist.next();
Team t = p.getTeam();
}
我在 Player 类中的哪个位置:
public static Iterator<Player> findAllIter() {
return players().find().as(Player.class).iterator();
}
public Team getTeam() {
Team t = Team.findById(this.team_id);
return t == null ? new Team() : t;
}
这是正确的吗?有没有更好的解决方案?
【问题讨论】:
-
它很实用。 :) 有可能更有效的解决方案,但由于 MongoDB 本身没有“加入”或“包含”样式功能,因此您需要推出自己的解决方案来收集相关文档。我建议您考虑对
Teams进行更多缓存,并可能使用$in一次(分批)获取多个团队。 -
也许这会有所帮助:stackoverflow.com/a/19790715/643302