【问题标题】:Remove field from database without reset it从数据库中删除字段而不重置它
【发布时间】:2013-02-21 03:15:39
【问题描述】:

我有这个模型播放器:

"sport_id" : ObjectId("512db94e6ee1f54932000001"),
"team_id" : ObjectId("512dbaf36ee1f5523e00000a"),
"twitter" : false,
"twitter_account" : "@brianhartline",
"updated_at" : ISODate("2013-03-06T10:37:45.943Z"),
"version" : 7,

我已从我的模型中删除了 twitter,但数据库中有字段 twitter。我不想删除 playerDB,但我想删除现有数据库中的 twitter 字段。

我必须做什么?

【问题讨论】:

    标签: ruby-on-rails mongodb mongoose database


    【解决方案1】:

    你可以试试这样去掉属性

    player.attributes.without('twitter')
    

    【讨论】:

    • 我必须在 mongoDb 上删除它
    【解决方案2】:

    这应该可行:

    Player.each do |player|
      player.unset(:twitter)
    end
    

    【讨论】:

    • drinor 我希望 twitter 列应该从数据库中删除,如果我使用你的代码,数据库将为零。
    • 如果你想从数据库中删除 twitter,你应该从你的 Player 模型中删除字段。
    • 是的,我以前做过,但是如果令人兴奋的数据库有字段 twitter,我不想删除 playerDB,我只想删除令人兴奋的数据库中的 twitter 字段。我该怎么办?
    • 谢谢,我放弃了数据库。链接你给的是红宝石,我需要 mongo。
    【解决方案3】:

    在 mongo shell 中执行此操作:

    db.players.update({}, {$unset: {twitter: 1}}, {multi: true})
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-11
      • 2016-07-30
      • 1970-01-01
      • 2015-07-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-29
      相关资源
      最近更新 更多