2010-09-01 64 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

相关问题