public Class Team{
@Id
String id;
String name = "";
}
public Class Player{
@Id
String id;
String team_id = "";
String name = "";
}
Хо, я должен выполнить «найти» на MongoDB за то, что команда связана с игроком? Я использую следующие:Jongo как вступить в коллекцию
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 нет встроенных функций стиля «join» или «include», вы должны использовать собственное решение для сбора связанных документов. Я бы посоветовал вам подумать о том, чтобы больше кэшировать «Команды» и потенциально использовать «$ in» для извлечения нескольких команд одновременно (в партиях). – WiredPrairie
Возможно, это может помочь: http://stackoverflow.com/a/19790715/643302 – Thomas