1

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

4

2 回答 2

2

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

person = Person.find_or_create_by(somefield: somefield)
person.update_attributes(otherfield: otherfield, somethingelse: somethingelse)
于 2013-02-22T09:18:33.183 回答
0

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

Person.collection.update_one({main_key: value}, {"$set":{key: value}}, {upsert: true})
于 2017-05-10T04:18:20.547 回答