У меня есть модель пользователя:Mongoid толчок с upsert
class User
field :username, type: String
embeds_many :products
end
class Product
field :name, type: String
embedded_in :user
end
Я хотел бы иметь одну операцию, которая бы:
- вставки пользователю
- обновления пользователя в случае, если пользователь (это я могу легко сделать с помощью upsert)
- push продукты
Это работает для upserting:
User.new(username: 'Hello').upsert
Проблема заключается в том, что это приведет к удалению внедренных продуктов (атрибут не указан продукты).
Могу ли я попросить mongoid пропустить установку массива на пустой? Могу ли я попросить mongoid выдвинуть новые продукты в конце массива продуктов? Что-то вроде этого:
User.new(username: 'Hello').push(products: [Product.new(name: 'Screen')]).upsert