我正在使用MongoDB作为后端在Node.js中开发Web应用程序。我想知道的是,通常接受的程序(如果存在)是什么,用于创建初始集合并用初始数据填充它们,例如名称的白名单或预定义常量列表。
从我所看到的情况来看,MongoDB会在数据插入到数据库中时隐式创建集合,并且插入的集合尚不存在。让这些隐式插入处理集合创建是标准的,或者使用MongoDB的人是否具有构建主结构并插入任何所需初始数据的脚本设置? (例如,当使用MySQL时,我有一个.sql脚本,我可以运行它来从头开始转储和重建/重新填充数据库)。
感谢您的帮助。
MHY
答案 0 :(得分:2)
如果您有数据,this post on SO可能会让您感到有趣。但是,由于Mongo了解JavaScript,您可以轻松编写一个为您准备数据的脚本。
创造一切不存在的东西是Mongo的本质。这样可以实现非常灵活和敏捷的开发,因为在处理类型之前不需要检查类型或需要检查table x
是否已存在。如果您需要动态创建集合,只需从数据库中获取它并在其中工作(无论是否存在)。
如果要查找某个对象,请务必检查它(不是null或是否存在某个键),因为如果使用null对象,它可能会影响您的代码。
答案 1 :(得分:0)
绝对没有理由仅使用安装脚本来显示集合和数据库。数据库和集合创建都是懒洋洋地完成的。
请注意,MongoDB是一个完全无架构的文档存储,所以甚至无法提前设置特定架构。
有一些工具可用于转储和恢复mongo提供的数据库内容。
现在,如果您的应用程序需要初始数据(如配置参数或您建议的白名单),通常最佳做法是根据需要在应用程序组件中设置自己的数据,并提供数据迁移路径。