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();
}在类播放器中,我有:
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;
}这是正确的吗?有没有更好的解决方案?
发布于 2013-07-09 21:52:13
由于MongoDB是一个文档数据库,因此您可以在文档中存储关系,也可以手动解析它们。
请参阅MongoDB References
MongoDB不支持联接。在MongoDB中,一些数据被反规范化,或者与文档中的相关数据一起存储,以消除连接的需要。但是,在某些情况下,将相关信息存储在单独的文档中是有意义的,通常存储在不同的集合或数据库中。
该网站还指出,您有两个选择:
References
我自己通常会手动解决引用问题,从来没有遇到过任何问题。你是否可以使用DBRefs取决于你的DB驱动程序,所以我建议你坚持使用手册。
https://stackoverflow.com/questions/17549621
复制相似问题