2017-02-05 2 views
1

У меня есть пара простых классов:Как сохранить объект в MongoDB с Скале

class Address(street: String) 
class Person(name: String, addresses: List[Address]) 

Как я могу сохранить его в MongoDB? И я хочу использовать операцию обертывания/разворота после сохранения операций.

Когда я пытаюсь использовать API касбы я получил исключение, как это:

MongoFactory.testCollection.save(Person("Name", List(Address("Street")))) 

Exception in thread "main"  org.bson.codecs.configuration.CodecConfigurationException: Can't find a codec for class mongo.MongoTest$Person2. 

ответ

0

Yo можно использовать ReactiveMongo для этой цели. Если вы хотите использовать play-json прямо, а не BSON, вы можете использовать ReactiveMongo play extension.

+0

Поддерживает ли ReactiveMongo пользовательские классы или только кассеты для случая? – rdm

+0

Да, reactivemongo поддерживает пользовательские классы. В случае «пользовательских классов» вам необходимо определить «читатели и писатели BSONDocument» или «json reads and write» (для расширения воспроизведения) вручную для каждого поля класса. В классах «case» вы можете просто использовать «макросы». – oblivion

+0

Могу ли я использовать операции сохранения и поиска без ручного отображения всех полей класса в DBObject (BSON)? Когда я использую java с популярным ORM для mongoDB (например, весенние данные), я не описываю ни читателей, ни писателей. Если у меня сложный граф объектов, это так скучно. – rdm

Смежные вопросы