随着应用程序的发展,更新/迁移Mongoose模式的最佳实践(或工具)是什么?

推荐答案

经过Update:次测试,这在当前的形式下不起作用,它的 idea 是正确的,我进行了一次迁移,对模块本身进行了大量调整.但是,如果没有一些重大的改变,并以某种方式跟踪不同的模式,我认为它无法按预期工作.


听起来你想要mongoose数据迁移

它旨在在使用文档时迁移文档的旧模式版本,这似乎是在mongodb中处理迁移的最佳方式.

您并不想在文档集合(ala alter table)上运行完整的数据集迁移,因为它会给服务器带来沉重的负载,并且可能需要应用程序/服务器停机.有时,您可能需要编写一个脚本,只需捕获所有文档,然后应用新的模式/更改并调用save,但您需要了解何时何地执行该操作.例如,向doc init添加迁移逻辑对性能的影响可能比关闭服务器3小时运行迁移脚本更大.

我发现这link也非常有用,基本上更详细地重申了上述内容,并基本上用php实现了上述 node 包的概念.

N.B.该模块已有5个月的历史,0个Forking ,但我环顾四周,找不到比abdelsaid的回应方式更好/更有用的东西..

Mongodb相关问答推荐

如何让mongoDB根据用户集合中提供的_id为发送者和接收者填充事务集合的子字段

如何将数组$拉到对象数组下

MongoDB/Mongoose查询:使用优先约束检索从位置A到位置B的路径

如何在Golang保存到MongoDB时排除空数据值的问题?

在mongdob中按子文档筛选不起作用

MongoDB聚合$group阶段$top与$first在大型数据集上的效率

从具有多个数组匹配 MongoDB 的两个集合中采样数据

有没有一种方法可以找到一个文档并通过 Go 更改 mongodb 中的 id/value 来克隆它

MongoDB 更新:如果新值不同,则将旧字段值推送到另一个数组字段

MongoDB:插入重复键更新

Meteor mongo 驱动程序可以处理 $each 和 $position 运算符吗?

使用 mgo 存储嵌套 struct

在 Ubuntu 14.04 中安装 MongoDB 失败

python mongodb正则表达式:忽略大小写

Node.js MongoDB Upsert 更新

NoSQL:MongoDB 或 BigTable 并不总是 Available意味着什么

如何在 MongoDB 的 $match 中使用聚合运算符(例如 $year 或 $dayOfMonth)?

查询不等于 null 或空的地方

mongo中的稀疏索引和空值

我可以使用字符串作为 mongodb 文档的 ID 类型吗?