Mongoid:更改(重命名)foreign_key 名称而不丢失数据
Mongoid: Change(rename) foreign_key name without loosing data
我想更改关系的外键。假设我有一个 class:
class Car
include Mongoid::Document
field :model, type: String
belongs_to :user, foreign_key: :random_key_id
end
而且我的数据库中只有很少的 Car 实例。我想更改 car
用户的外键
class Car
include Mongoid::Document
field :model, type: String
belongs_to :user, foreign_key: :owner_id
end
但是当我像上面那样更改定义时,数据库中的所有汽车都失去了与 .user
的连接。在 SQL 数据库中,我将只生成带有重命名列的迁移。如何在mongoid中解决?
您可以直接将 MongoDB 连接到 rename the field。
所以启动你的 Mongo shell 和 运行 这个:
db.cars.update({}, {$rename:{"random_key_id":"owner_id"}}, false, true);
如果您不熟悉使用 Mongo shell 那么 start here.
我想更改关系的外键。假设我有一个 class:
class Car
include Mongoid::Document
field :model, type: String
belongs_to :user, foreign_key: :random_key_id
end
而且我的数据库中只有很少的 Car 实例。我想更改 car
用户的外键class Car
include Mongoid::Document
field :model, type: String
belongs_to :user, foreign_key: :owner_id
end
但是当我像上面那样更改定义时,数据库中的所有汽车都失去了与 .user
的连接。在 SQL 数据库中,我将只生成带有重命名列的迁移。如何在mongoid中解决?
您可以直接将 MongoDB 连接到 rename the field。
所以启动你的 Mongo shell 和 运行 这个:
db.cars.update({}, {$rename:{"random_key_id":"owner_id"}}, false, true);
如果您不熟悉使用 Mongo shell 那么 start here.