更新或将嵌入式文档推送到阵列

时间:2013-08-13 16:59:48

标签: ruby mongodb mongoid

我有两个文件

class Holder
  include Mongoid::Document

  embeds_many :things
end

class Thing
  include Mongoid::Document

  embedded_in :holder
end

有没有办法找到Holder.things中是否存在某些元素并更新它或是否创建新元素?类似于mongoDB中的upsert标志。

谢谢。

1 个答案:

答案 0 :(得分:0)

到目前为止你尝试了什么?查看Mongoid提供的嵌入式1-N关系函数(here)。

@myHolder.things.find_or_create_by(attr: 'val')
# or 
if @myHolder.things.where(attr: 'val').empty? ...