我正在尝试使用Ruby(我不太了解)和Mongo(我这样做)。我已经制作了一个带有:accessed
字段的Mongoid模型。我知道在Mongo我可以运行类似的东西:
data = db.collection.findAndModify({
query: { ... },
update: {$inc: {accessed: 1}}
})
但是当我在Mongoid中运行MyModel.collection.find_and_modify
时,我会回到看似哈希的东西。有没有办法可以将其强制转换为我的模型类的实例,或者在Mongoid中执行更好的支持查询?
答案 0 :(得分:1)
默认情况下,find_and_modify返回哈希值,请检查documentation
参数:
选项哈希(opts):
<强>返回:强>
但是您可以通过将哈希作为参数传递来简单地初始化模型,从而将哈希转换为您的集合对象
>> x = MyModel.collection.find_and_modify(:query => {...},:update => {...})
>> x.class
>> BSON::OrderedHash
>> obj = MyModel.new(x)
>> obj.class
>> MyModel
现在您可以对转换后的对象应用任何mongoid操作。它会完美地运作。
希望有所帮助