Я храню игровые состояния в базе данных MongoDB и использую Spring Data для управления взаимодействием с базой данных. Я новичок в Spring Data и не уверен, как справиться со следующим сценарием.
У меня есть документ типа «Игра» с множеством свойств, таких как id, timestamp и т. Д. Одно из этих свойств - это список действий, предпринятых пользователями. Эти действия имеют форму:
{ type: 2 }, {type: 3, value: 4}, {type: 5, id: 1234}, {type 6}, {type: 5, value: 6, id: 56}
Другими словами, действие может иметь три свойства: тип, значение и идентификатор. Однако не каждое действие требует сохранения всех трех значений. Я хочу избежать кучи нулевых значений в моей базе данных и хотел бы, чтобы моя база данных просто не включала и id, или значение, если они не указаны.
Используя модель Spring Data MongoRepository, я не уверен, как этого добиться. Я могу создать класс CRUD Game и иметь одно из его свойств в виде списка Action (где само действие является классом CRUD с типом свойств, значением и идентификатором), но не приведет ли это к сохранению нулевых значений в базе данных, если Я не указываю значение или id?
Короче говоря, как я могу использовать Spring Data MongoRepository, но при этом сохранять гибкость, имея возможность хранить списки объектов с различными параметрами или типами объектов в целом.