我的情况:我创建了一个Mongo(mongoose),Express和Node应用程序,现在我正在构建其他功能,我已经意识到我的模型将无法处理新功能,所以我构建了一个未来证明的新模型,但我需要将我的旧模型User的一些数据字段移动到我的新模型List。
将文档数据从一个文档集合中的所有特定字段移动到新集合中的新文档中的最佳方法是什么?我可以使用JavaScript创建脚本并对我的服务器或数据库运行吗?
如果可能的话,我不想破坏用户的体验。另外,我知道有db.collection.update方法,但我需要一次性移动所有这些数据,而不是每当我在我的应用程序中运行该方法时。
答案 0 :(得分:1)
您可以通过多种方式编写脚本,但最简单的方法是:
aggregate
和$out
阶段来填充原始文档中的新集合。使用管道中的$project
阶段根据需要构建输出文档。updateMany
,使用$unset
运算符删除“已移动”字段。根据系统的具体情况,您可能仍需要在执行此操作时让用户脱机。