Mongodb通过ruby更新文档无法正常工作

时间:2013-12-06 12:07:02

标签: ruby mongodb

我想通过Ruby代码更新MongoDB中的文档。我有文档ID,我只想更新特定字段。我尝试了以下代码。

collection.update({"_id".to_s => doc_id},{"$set"=> {"selected" => "false"}})

以及

collection.update({"_id".to_s => doc_id},{"selected" => "false"})

两个命令执行时没有任何错误,但数据库不受影响。

1 个答案:

答案 0 :(得分:0)

According to the documentation,更新文档的方法是

collection.update({"_id" => id}, doc)

collection.update({"_id" => id}, {"$set" => {"name" => "MongoDB Ruby"}})

该ID应该是有效的ID。我不确定是否接受字符串,以防确保将其转换为BSON::ObjectId

collection.update({"_id" => BSON::ObjectId.from_string(doc_id) }, {"$set" => {"selected" => "false" }})

确保检查命令返回true

另请注意,如果您使用的是驱动程序版本< 1.8,您应该使用:safe => true

  

驱动程序将在每次写入后发送getlasterror命令,以确保默认情况下写入成功。在驱动程序版本1.8之前,默认情况下不会确认写入,因此必须明确指定选项':safe =>写'确认'为真。情况已不再如此。

相关问题