簡體   English   中英

鍾路如何加入收藏

[英]Jongo how to join collections

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

這個對嗎? 有更好的解決方案嗎?

由於MongoDB是文檔數據庫,因此您可以在文檔中存儲關系或手動解決它們。

請參閱MongoDB參考

MongoDB不支持聯接。 在MongoDB中,某些數據被非規范化,或與相關數據一起存儲在文檔中,以消除對聯接的需要。 但是,在某些情況下,將相關信息存儲在單獨的文檔中(通常存儲在不同的集合或數據庫中)是有意義的。

同一站點還指出您有兩個選擇:

  1. 手冊參考
  2. 數據庫引用

我本人通常手動解決引用問題,從沒有任何問題。 我建議您是否可以使用DBRef取決於您的DB驅動程序,因此請堅持使用手冊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM