Mongoid upsert字段

时间:2013-02-22 08:47:49

标签: ruby mongodb mongoid

我想使用mongoid的upsert方法,但它应检查文件是否存在于不同于_id的字段上(mongoimport命令允许您使用--upsertFields选项执行此操作)。 有没有办法用mongoid做到这一点?

2 个答案:

答案 0 :(得分:2)

我会回答我自己的问题,这应该按预期工作:

person = Person.find_or_create_by(somefield: somefield)
person.update_attributes(otherfield: otherfield, somethingelse: somethingelse)

答案 1 :(得分:0)

实际上,mongoid已经打包到your_model.collection.method.so你可以这样做upsert:

Person.collection.update_one({main_key: value}, {"$set":{key: value}}, {upsert: true})