【问题标题】:Remove attribute from mongoid database从 mongoid 数据库中删除属性
【发布时间】:2013-12-12 11:29:47
【问题描述】:

我在 mongoid 中有一个模型用户,其属性为 :country。我想从模型和任何现有用户文档中删除此字段。我怎样才能做到这一点?

# user.rb
class User
  include Mongoid::Document

  field :name,     type: String
  #field :country,  type: String    --> field removed from model

end

【问题讨论】:

    标签: ruby-on-rails database model mongoid


    【解决方案1】:

    对于数据库中的所有用户:

    User.all.each { |user| user.unset(:country) }
    

    或单个用户:

    User.unset(:country)
    

    【讨论】:

    • 您也可以使用$unset 运算符和低级Moped 接口。
    • unset 仅用于取消设置属性值,不用于删除属性。
    【解决方案2】:

    在 Mongoid 3+ 中,User.all.unset(:country) 将自动取消所有 User 文档的字段:

    https://www.rubydoc.info/github/mongoid/mongoid/Mongoid/Contextual/Atomic#unset-instance_method

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-09
      相关资源
      最近更新 更多