Mongoid未设置仍显示该字段

时间:2014-07-24 01:55:51

标签: ruby-on-rails mongodb mongoid

我目前正在处理Mongoid文档。我要做的是使用unset方法删除字段。

class Record
  include Mongoid::Document
  field :count,  type: Integer, default: 1
end

然后我创建了一个新数据:

record = Record.new

record.count # returns 1 by default

我还看了一下mongo控制台,那里就是场地。

当我这样做时:

record.unset(:count)

访问mongo控制台,该字段已消失,但当我尝试这个时:

record.inspect

我仍然可以看到count字段。

我正在使用mongoid 3.1.6

1 个答案:

答案 0 :(得分:1)

请理解'count'是您的Mongoid模式中针对类Record的已定义字段(感兴趣), 所以当你在客户端检查它时,Mongoid会报告它的价值, 即使你在服务器端取消了它。

如果您在检查客户端时不想“看到”计数字段, 您可以将其作为Mongoid架构中的已定义字段删除, 但是你将消除所有Mongoid方便的“点”字段访问和默认值,例如, 你必须通过记录['count']访问,不再有record.count访问者, 并且必须编制自己的默认值。

希望这有助于澄清事情。