【发布时间】:2026-01-20 22:20:04
【问题描述】:
我有模型用户:
class User
field :username, type: String
embeds_many :products
end
class Product
field :name, type: String
embedded_in :user
end
我想要一个单一的操作:
- 插入用户
- 在用户已经存在的情况下更新用户(我可以通过 upsert 轻松完成)
- 推产品
这适用于更新插入:
User.new(username: 'Hello').upsert
问题是这将删除嵌入的产品(未指定产品属性)。
我可以要求 mongoid 跳过设置数组为空吗? 我可以要求mongoid在产品数组的末尾推送新产品吗? 像这样的:
User.new(username: 'Hello').push(products: [Product.new(name: 'Screen')]).upsert
【问题讨论】:
标签: ruby mongoid mongodb-query upsert