Заполнить вложенные документы в MongoDB с помощью Rails rake db: seed - PullRequest
0 голосов
/ 13 октября 2011

Как следует структурировать db.seeds для предоставления данных для MongoDB, особенно если они содержат встроенные документы?

Я столкнулся со следующей ошибкой при попытке заполнить предположительно неправильно структурированный файл db.seeds:

Невозможно сериализовать объект класса ClassName в BSON.

Ответы [ 2 ]

1 голос
/ 15 января 2012

Начните с создания «нового» вложенного объекта, такого как адрес, с атрибутом улица и город и установив его равным переменной.Затем создайте родительский объект, в данном случае пользователь с адресом атрибута, и присвойте ему созданную выше переменную.Поскольку это вложенный объект, вам нужно заключить переменную в массив [].Делая это таким образом, вы сможете легко читать, особенно если у вас много вложенных объектов.При обращении к вложенному объекту обязательно исключайте пробелы после двоеточия, иначе вы получите ошибку.

a = Address.new(street: 'Any_Street', city: 'Any_City')
User.create(address:[a])

Это запустит mongoDB с адресным объектом, который вложен в объект пользователя.

0 голосов
/ 13 октября 2011
Parent.create(title: 'foo', children: [
  Child.create(title: 'bar', date: Time.utc(2011,10,13)),
  Child.create(...),
  Child.create(...)
])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...