mongo的输出对于本机ruby mongo映射器来说是不确定的



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

首先,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
    }
  ]
}

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

相关内容

最新更新