无法从 Mongo DB Rails Rake 中获取值

Cannot get value from Mongo DB Rails Rake

希望你能帮我解决我找不到答案的问题。 我有这个应用程序并试图检索和更新数据库中记录的值。

我在 rails 应用程序中的 rake 命令如下所示:

task :nokogiri => :environment do

require 'nokogiri'  
require 'open-uri'

doc = Nokogiri::XML(open(url))

  data = doc.at_css(".lister-list")
  movies = data.css('.titleColumn')
  current_time = Time.now.strftime("%d/%m/%Y %H:%M")
    movies.each do |movie|

      headline = movie.text.strip
      found = Movie.where("title" => headline).first

      if found.nil?
        title = Movie.new
        title._id = BSON::ObjectId.new
        title.title = headline
        title.current_time = current_time.to_s
        title.save
        puts "Record created"
      else
      #  arr =  found.to_a.to_json
       # puts arr.title
        puts found.title
        puts "Record exist"
      end
    end
end

问题是我可以将 "arr" object 输出到控制台,但我无法检查标题字段。我不断收到:

rake aborted!
NoMethodError: undefined method `title' for #<String:0x007f68589d93e8>

我做错了什么?我如何用 current_time 更新记录?

p.s。我是 rails 的新手,所以您的帮助对我有很大帮助,而您是最后一个可以帮助我的人。

谢谢!

编辑:答案很简单,where函数,我们必须限制结果并把它放在.first。然后我们可以像往常一样得到object值found.title

else 分支中你这样说:

arr =  found.to_a.to_json

to_jsonreturns一个String。然后你说:

puts arr.title

但是没有 String#title 方法,所以你得到一个 NoMethodError。也许你的意思是:

puts found.title

还有,你真的想说 found.to_a.to_json 而不是 found.to_json 吗? to_a 调用只是将 found 包装在单个元素数组中。