MongoDB + NodeJS Web应用程序的初始数据库结构/数据

我正在用MongoDB作为后端开发Node.js中的Web应用程序。 我想知道的是,什么是普遍接受的程序(如果存在的话),用于创build初始集合并用初始数据填充它们,例如名称或预定义常量列表的白名单。

从我看到的情况来看,MongoDB会隐式创build集合,任何时候数据都被插入到数据库中,而插入的集合还不存在。 让这些隐式插入负责创build集合是否标准,或者使用MongoDB的人员是否具有构build主结构并插入所需的初始数据的脚本设置? (例如,当使用MySQL时,我会有一个.sql脚本,我可以从头开始运行以转储和重build数据库)。

感谢您的任何帮助。

MHY

如果你有数据, 这个SO上的post可能会为你辩护。 但是由于Mongo理解JavaScript,您可以轻松编写一个脚本来为您准备数据。

创造一切不存在的东西就是Mongo的本质。 这允许一个非常灵活和敏捷的开发,因为你没有限制types或需要检查table x已经存在之前,它的工作。 如果你需要dynamic地创build集合,只要从数据库中获取并且如果(不pipe它是否存在)都可以工作。

如果你正在寻找一个特定的对象,一定要检查它(不是null或者是否存在一个特定的键),因为如果你使用空对象,它可能会影响你的代码。

仅仅为了使集合和数据库出现,绝对没有理由使用安装脚本。 DB和集合创build都是懒惰的。

Rember认为,MongoDB是一个完全无模式的文档存储,所以没有办法甚至提前设置一个特定的模式。

有一些工具可用于转储和恢复mongo提供的数据库内容。

现在,如果您的应用程序需要初始数据(比如您build议的configuration参数或白名单),那么最好让您的应用程序组件根据需要设置自己的数据,并提供数据迁移path。