次のコードを 2 回実行すると、両方の回s.save
が true を返し、成功を示しますが、2 回目は時間が更新されませんか?
foo = Foo.new
foo._id = 100
foo.time = Time.now
p foo.save
次のコードを 2 回実行すると、両方の回s.save
が true を返し、成功を示しますが、2 回目は時間が更新されませんか?
foo = Foo.new
foo._id = 100
foo.time = Time.now
p foo.save
まず、mongo データベースにいくつのデータがあるかを調べます。あなたの説明から、同じコードを 2 回実行しているように見えます。したがって、同じコードを 2 回実行すると、実際には別のレコードが挿入されます。2 回目の実行では、foo が新しいインスタンスを参照しているためです。
レコードを更新したい場合は、これを試してください:
foo = Foo.new
foo._id = 100
foo.time = Time.now
puts foo.save
foo.time = Time.now
puts foo.save
2 回目のそのコードでは、foo は以前にインスタンス化されたインスタンスを参照しています。