0
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;
}

它是否正确?有没有更好的解决方案?

4

1 回答 1

0

由于 MongoDB 是一个文档数据库,您可以将关系存储在文档中,也可以手动解决它们。

请参阅MongoDB 参考资料

MongoDB 不支持连接。在 MongoDB 中,一些数据是非规范化的,或者与相关数据一起存储在文档中以消除对连接的需要。但是,在某些情况下,将相关信息存储在单独的文档中是有意义的,通常是在不同的集合或数据库中。

同一个站点还指出您有两种选择:

  1. 手册参考
  2. DBRefs

我自己通常手动解决引用,并且从来没有遇到过任何问题。是否可以使用 DBRefs 取决于您的 DB 驱动程序,所以我建议坚持使用手册。

于 2013-07-09T13:52:12.713 回答