1

您如何处理生产中的架构更改?

假设我在我的 C# 项目中篡改了一些类,添加了一个由 Dictionary (Key(UInt16),Value(UInt16)) 组成的复杂属性,而 value 有一个默认值,一个整数。您将如何将其添加到当前生产环境中的 MongoDB 实例中?

C# 示例:我将此字典添加到现有类(这显然反映在 MongoDB 作为一个集合):

public Dictionary<SomeEnum, object> SomeSettings = new Dictionary<SomeEnum, object>()
{
 { SomeEnum.BGColor, "#FFFFFF" }, //White
 { SomeEnum.QRColor, "#000000" }, //Black
 { SomeEnum.LogoSize, (UInt16)100 }, //White
 { SomeEnum.MemberDetailsColor, "#000000" }, //Black
 { SomeEnum.BottomTextColor, "#000000" }, //Black
 { SomeEnum.ShowDecreaseButton, true }
}; 

SomeEnum 一个 UInt16 类型的枚举,这整个字典是一个全新的字段,我想使用这些默认值添加到现有集合中。你会怎么做?

谢谢!!!

4

1 回答 1

1

这似乎是一次性操作,因此您可以通过 mongodb shell 来完成。登录到您的 mongodb 服务器(或 RP 主服务器,如果您使用的是 ReplicaSet)。

use your_db
default_dict = {
      uint16_key_a : uint16_value a,
      uint16_key_b : uint16_value b,
      ...
}
db.you_collection.update({},{ "$set" : { "your_brand_new_field" :default_dict} },false,true)

更新命令将每个文档的 _your_brand_new_field_ 字段设置为 _default_dict_({} 查询匹配所有内容)。希望这是你需要知道的。

于 2012-12-10T22:19:57.417 回答