Я использую MongoDB в одном из моих проектов Java.После изменения схемы БД я обнаружил, что изменяю существующий код во многих местах, чтобы выполнить изменение, например:
Object result = collection.findOne();
до
Object result = collection.findOne().get("ThisField").get("ThatField");
Теперь все относительно простоfindOne()
, но они становятся более сложными, когда find()
и связанные курсоры начинают играть.
В большинстве случаев было бы намного проще, если бы я мог изменить запрос , а не его результат.Я уже экспериментировал с , получая только специфические поля , но, насколько я могу судить, он маскирует только остальные поля - это не меняет структуру объекта.
Можно ли задать запрос так, чтобы объекты, которые формируют значения определенного поля, "повышались" до объекта верхнего уровня, таким образом удаляя вызовы .get("this").get("that")
?
В качестве дальнейшего шага, поддерживает ли MongoDB какой-либо эквивалент представлений , как это видно в обычных базах данных?Что-то, что могло бы позволить существующему коду продолжать работать в случае изменения схемы?