我在Mongoid2中有这个查询工作正常:
GlobalWord.collection.update({"_id" => "foo"}, {"$inc" => {:count => 1}}, :upsert => true)
如果找到标识为GlobalWord
的{{1}},则会将其计数更新为1,否则会创建标识为foo
且计数为1的文档。我没有在mongoid3中找到相同的东西。
编辑:我需要查询是原子的
3 个答案:
答案 0 :(得分:1)
我相信这应该有效:
GlobalWord.find("_id": "foo").upsert("$inc": {count: 1})
但是,我没有测试它。我的手机上没有MongoDB:)
答案 1 :(得分:1)
我用过
GlobalWord.create(:id => word).inc(:count,1)
这似乎是原子的
答案 2 :(得分:0)
来自docs& rdoc
GlobalWord.new(id: word).upsert("$inc" => {count: 1})