Ruby on rails 使用Mongoid(Ruby on Rails的MongoDB映射器),为什么s.save返回true但记录未更新?

Ruby on rails 使用Mongoid(Ruby on Rails的MongoDB映射器),为什么s.save返回true但记录未更新?,ruby-on-rails,mongodb,mongoid,Ruby On Rails,Mongodb,Mongoid,如果以下代码运行两次,两次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 =

如果以下代码运行两次,两次
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

在第二次的代码中,foo指的是之前实例化过的实例。

但是每次插入后,当我执行
db.foo.count()
时,它仍然是1。是否有充分的理由覆盖foo对象的_id?因为我们正在从MySQL导入数据,所以我想保留MongoDB的主键ID