2010-09-01 62 views
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 
+0

有沒有什麼好的理由來覆蓋你的Foo對象的_id? – 2010-09-02 10:06:23

+0

,因爲我們從MySQL導入數據,所以想保留主鍵ID到MongoDB – 2010-09-02 12:21:14

回答

0

首先看看mongo數據庫中有多少數據。從你的解釋來看,你似乎運行同一段代碼兩次。所以,你運行同一段代碼兩次,實際上是插入另一條記錄,因爲在第二次運行時,foo指的是一個新的實例。

如果你想嘗試更新記錄,試試這個:

foo = Foo.new 
foo._id = 100 
foo.time = Time.now 
puts foo.save 
foo.time = Time.now 
puts foo.save 

在第二時間碼,富指的是那是以前實例化的實例。

+0

但每次插入後,當我做'db.foo.count()',它仍然是1。 – 2010-09-01 04:59:36

相關問題