2013-03-06 2 views
1

У меня есть эта модель игрока:Удалить поле из базы данных без перезагрузки его

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

Я удалил твиттер из моей модели, но база данных имеет поле твиттер. Я не хочу бросать playerDB, но я хочу удалить поле twitter в существующей базе данных.

Что я должен сделать?

ответ

1

Вы можете попытаться удалить атрибут, как этот

player.attributes.without('twitter') 
+0

я должен удалить его on mongoDb – God

1

Это должно работать:

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

drinor Я хочу, чтобы колонка twitter была удалена в базе данных, если я использовал код ur, это будет nil базы данных. – God

+0

Если вы хотите удалить твиттер из базы данных, вы должны удалить поле из своей модели. – drinor

+0

Я сделал это раньше, но если увлекательной базы данных есть твиттер поля, я не хочу бросать playerDB. Я хочу удалить только поле твиттера в захватывающем databse. что мне нужно сделать? – God

0

Чтобы сделать это в Монго оболочки:

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