mongodb的ruby驱动程序:update方法返回Fixnum,而不是Hash

时间:2013-07-30 19:04:17

标签: ruby mongodb

我正在调试偶尔写入mongo集合似乎失败的问题。当我查看错误检查代码时,我发现Collection类中的update方法似乎返回了Fixnum而不是hash。

这是一个代码片段(带有调试语句)

  begin
    puts "collection type: #{@db_collection.class}"
    status = @db_collection.update(selector, document) 
    puts "[Warn] Database update returned NULL status" unless status

    puts "[Error] Mongo update returned an error: #{status.class}" unless (status == true)
    puts "[Error] Mongo update returned an error: #{status}" unless (status == true)
  rescue => e
    puts "[Warn] Unable to update mongoDB (#{e})"
  end

当我运行此代码时,我得到以下输出:

  

集合类型:Mongo :: Collection

     

[错误] Mongo update返回错误:Fixnum

     

[错误] Mongo update返回错误:236

我期望更新功能在成功操作时返回true,而Hash for根据文档失败:

  

返回:   (Hash,true) - 如果确认写入,则返回包含最后一个错误对象的哈希。 >否则,返回true。

我正在使用版本1.8.0的ruby驱动程序。

我不确定如何正确检查写入是否正确发生。我知道如果写入失败,驱动程序应抛出异常,但我没有看到这种情况发生。我不知道如何正确检查状态变量,因为它没有返回我期望的类型。

提前感谢您的帮助。

0 个答案:

没有答案