4
我正在考虑迁移到mongoDB,但我缺乏一些基本的了解。我的主要问题是“存储的对象如何受到模型更改的影响?”。这里是一个场景,以更好地了解我想知道什么:MongoDB:存储对象如何受到模型更改的影响?
- 我创建一个“用户”模型与first_name,姓氏,电子邮件属性。
- 我在我的应用程序中创建了25个存储在mongo中的用户(所以它们被存储为{first_name:“xxx”,last_name:“yyy”,email:“zzz”})
- 我向我的“用户”模式:用户名
- 我在我的应用程序中创建了25个新用户(因此它们被存储为{first_name:“xxx”,last_name:“yyy”,email:“zzz”,用户名:“xyz”})
- 我从“用户”模型中删除“first_name”和“last_name”属性。
- 我更新了前25个用户中5个的电子邮件地址。
因此,这里是我的问题:
- 添加“用户名”属性设置为“用户”模式后,会发生什么情况第一25个对象?他们是否在其BSON定义中收到了“username”属性,其值为空?我的理解是他们只是没有受到感染。
- 当我从“用户”模型中删除“first_name”和“last_name”属性时,现有的50个用户会发生什么情况?我想#1适用的答案相同。
- 当我更新了10条记录的电子邮件地址后,5个第一个会发生什么?他们是否加入了“用户名”,删除了“first_name”和“last_name”并更新了他们的电子邮件地址?或者只是更新其电子邮件地址?
感谢您的回答!实际上,我一直认为在数据库中定义模型的属性而不是模型本身是很奇怪的,所以不会造成太大的损失;-)所以我猜测单元测试是最终的保护措施,可以防止不必要的模型更改和信息丢失等问题因为错误地删除了模型中的电子邮件属性定义行,并在应用程序中丢失了该信息,因为delayed_job每晚都在更新您的用户! – 2012-04-18 15:05:05