Mongoid Run Core Монго Действие - PullRequest
       8

Mongoid Run Core Монго Действие

0 голосов
/ 30 октября 2019

Я использую монгоид на проекте рельсов. У меня есть вызов API, который выбирает записи клиента в формате JSON (массив хэшей).

users = api.get_users # Returns JSON

Чтобы использовать поиск, сортировку и разбиение на страницы в Mongo, я хотел бы хранить записи, которые я получаю через API вбаза данных.

Конечно, я мог бы запустить каждую запись в JSON и сделать что-то вроде User.create (user), но я хотел бы просто импортировать все записи сразу и создать каждую запись в базе данных. Возможно, используя https://docs.mongodb.com/manual/reference/program/mongoimport?

Есть предложения?

1 Ответ

0 голосов
/ 30 октября 2019

Вы правы - поскольку ваши данные в формате JSON, mongoimport - это инструмент, который вы хотите использовать. После того, как вы импортировали свои данные, вы можете настроить схемы документов Mongoid в соответствии с импортированными вами данными.

Вот полезный учебник mongoimport , если вы хотите попробовать его на некотором примереdata.

Для данных инвентаризации в этом руководстве вы можете настроить схему:

# JSON data: { "item": "journal", "qty": 25, "size": { "h": 14, "w": 21, "uom": "cm" }, "status": "A" }

class Inventory
  include Mongoid::Document
  store_in collection: 'inventory'

  field :item, type: String
  field :qty, type: Integer
  field :size, type: Hash
  field :status, type: String
end

Некоторые вещи, которые следует отметить здесь:

  • Убедитесь, что вы импортируете свои данные в имя коллекции по умолчанию для модели, которую вы хотите создать (т. Е. Импортируете в коллекцию "users" для модели с именем User) ИЛИ в модели укажите, какая коллекцияданные хранятся в (используя метод store_in)

  • Когда вы импортируете данные в виде хэша, у вас есть несколько вариантов их представления в Mongoid. Я только что использовал Hash в этом примере, но вы также можете сделать size своим собственным встроенным документом.

...