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