根据mongo docs,我的返回对象应该包含一个 lastErrorObject,它应该通过 updatexisting 指示对象是新的还是旧的。我没有看到这个对象。如何修复我的查询以区分创建的新对象和找到的对象?
db['posts'].find_and_modify({:query=>{"id"=>post_hash["id"]}, :update=>post_hash, :upsert=>true})
我做错了什么?
根据mongo docs,我的返回对象应该包含一个 lastErrorObject,它应该通过 updatexisting 指示对象是新的还是旧的。我没有看到这个对象。如何修复我的查询以区分创建的新对象和找到的对象?
db['posts'].find_and_modify({:query=>{"id"=>post_hash["id"]}, :update=>post_hash, :upsert=>true})
我做错了什么?
您参考的文档并非特定于 ruby 驱动程序。尝试添加 :full_response=>true 选项,如此处所述:
http://api.mongodb.org/ruby/current/Mongo/Collection.html#find_and_modify-instance_method
它应该返回一个带有请求文档(“值”)的散列和一个带有“updatedExisting”字段的“lastErrorObject”散列,您可以检查该散列。希望有帮助。