使用native-ruby-mongo-mapper,mongo的输出是不确定的

时间:2015-07-02 01:46:10

标签: ruby mongodb

我遇到了一个随机发生的问题。

首先,exsit?(collection, id)返回true

  

这意味着MongoDB中已经有一个文档,所以我必须在下一步中进一步检查

然后(coll.find({_id: id}).first['history'].last['price']会引发错误

#<NoMethodError: undefined method `last' for nil:NilClass>

我不明白为什么这会随机发生。

代码

  def exsit?(collection, id)
    return (collection.find({_id: id}).first.nil? ) ? false : true
  end

  def is_price_changed?(coll, id, current_price)
      if exsit?(coll, id)
        return (coll.find({_id: id}).first['history'].last['price'] != current_price)? true : false
      else
        return true
      end    
  end

这是我的文件格式

{
  "updated_at": new Date(1435757280839),
  "price": 16890,
  "history": [
    {
      "updated_at": new Date(1435757277672),
      "price": 16890
    }
  ]
}

1 个答案:

答案 0 :(得分:0)

看起来该id的'history'属性为nil