[英]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中,某些數據被非規范化,或與相關數據一起存儲在文檔中,以消除對聯接的需要。 但是,在某些情況下,將相關信息存儲在單獨的文檔中(通常存儲在不同的集合或數據庫中)是有意義的。
同一站點還指出您有兩個選擇:
我本人通常手動解決引用問題,從沒有任何問題。 我建議您是否可以使用DBRef取決於您的DB驅動程序,因此請堅持使用手冊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.