1
如果下面的代碼運行兩次,兩次s.save
都會返回true,表示成功,但第二次,時間不會更新?爲什麼使用Mongoid(MongoDB映射器的Ruby on Rails),爲什麼s.save返回true,但記錄沒有更新?
foo = Foo.new
foo._id = 100
foo.time = Time.now
p foo.save
如果下面的代碼運行兩次,兩次s.save
都會返回true,表示成功,但第二次,時間不會更新?爲什麼使用Mongoid(MongoDB映射器的Ruby on Rails),爲什麼s.save返回true,但記錄沒有更新?
foo = Foo.new
foo._id = 100
foo.time = Time.now
p foo.save
首先看看mongo數據庫中有多少數據。從你的解釋來看,你似乎運行同一段代碼兩次。所以,你運行同一段代碼兩次,實際上是插入另一條記錄,因爲在第二次運行時,foo指的是一個新的實例。
如果你想嘗試更新記錄,試試這個:
foo = Foo.new
foo._id = 100
foo.time = Time.now
puts foo.save
foo.time = Time.now
puts foo.save
在第二時間碼,富指的是那是以前實例化的實例。
但每次插入後,當我做'db.foo.count()',它仍然是1。 – 2010-09-01 04:59:36
有沒有什麼好的理由來覆蓋你的Foo對象的_id? – 2010-09-02 10:06:23
,因爲我們從MySQL導入數據,所以想保留主鍵ID到MongoDB – 2010-09-02 12:21:14