Я использую mongodb с spring, и у меня есть несколько вложенных документов, полученных из одного базового класса, mongo использует свойство _class, чтобы узнать, в какой тип нужно преобразовать, но теперь я изменил имя пакета и коллекция все еще есть документы со старым именем пакета, как я могу сказать монго, какие пользовательские преобразования делать?
Как обновить существующие документы с информацией о типе Spring Data MongoDB после переименования типов?
Ответы (1)
Прежде всего, в следующий раз, чтобы отделить ваше имя package/class
от переменной _class
, используйте аннотацию: @TypeAlias("name")
на вашем pojo. тогда _class
будет иметь значение "name
"
На мой взгляд, самым простым решением является обновление вашего pojo с помощью TypeAlias
и обновление поля _class
вашей коллекции с его новым значением.
Прочитайте о Type mapping
здесь: http://docs.spring.io/spring-data/data-mongodb/docs/current/reference/html/#mongo-template.type-mapping
person
royB
schedule
04.03.2015
Иногда вам нужно с
@TypeAlias
добавить @Document(collection="collectionName")
, чтобы он работал. Я столкнулся с той же проблемой здесь
- person Sylhare; 12.09.2019