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