mongoid 3中这个mongoid查询的等价物是什么?

时间:2012-07-30 14:01:12

标签: ruby mongodb mongoid

我在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})