Можно ли использовать MongoRepository с нефиксированной структурой документа? [Дубликат]

Учитывая, что никто не упомянул об этом ...

Некоторые языки высокого уровня, такие как Python и Java, поставляются с инструментами для преодоления ограничений двоичной с плавающей запятой. Например:

Ни одно из этих решений не идеально (особенно, если мы смотрим на выступления, или если мы требуют очень высокой точности), но все же они решают большое количество проблем с двоичной арифметикой с плавающей запятой.

3
задан user3222762 7 March 2016 в 16:10
поделиться

1 ответ

Во-первых, несколько проницательных ссылок о схематических данных:

Second ... можно задаться вопросом, является ли Spring или Java правильным решением для вашей проблемы - почему не более динамичный инструмент, такой Ruby, Python или Mongoshell?

. Говоря об этом, давайте сосредоточимся на технической проблеме.

Если ваша цель состоит только в том, чтобы хранить случайные данные, вы могли бы в принципе просто определите свой собственный контроллер и непосредственно используйте Java-драйвер MongoDB.

Если вы действительно настаиваете на отсутствии предопределенной схемы для вашего класса объектов домена, вы можете использовать что-то вроде:

@Document(collection = "users")
public class User implements UserDetails {
    @Id
    private String id;
    private Object data;

    // getters/setters omitted
}

данные также могут быть определены как Map, com.mongodb.DBObject, com.mongodb.BasicDBObject или com.mongod.B.BasicDBList.

В основном это дает вам поле, в котором вы можете поставьте все, что захотите, но следите за проблемами сериализации / десериализации (это может стать сложным, если у вас есть Objec tIds и DBRefs в вашем вложенном документе). Кроме того, обновление данных может стать неприятным, если иерархия данных становится слишком сложной.

Тем не менее, в какой-то момент вы поймете, что у ваших данных действительно есть схема, которая может быть точно определена и помещена в четко определенные POJOs.

7
ответ дан Marc Tarin 27 August 2018 в 04:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: