更改Mongoose模式时重新启动本地MongoDB的正确过程

时间:2016-07-13 10:06:10

标签: node.js mongodb mongoose

大家好我不知道如何使用Mongoose和Express开发Node.js。我一直遇到Mongodb的一些问题没有正确反映我的架构变化。

例如,我编写了一个模型,当插入每个新文档时,该模型应该从0开始自动递增_id 1。我正在测试一些方法来做这个模型,所以我不断插入不同的数据。

我每次都会删除集合以尝试重新插入数据。但是,_id而不是从0开始,它从之前的最大_id开始。

这只是我遇到过的问题之一。我在飞行中做的其他一些类似的Schema更改也没有反映出来。

我尝试了以下内容:

  • 结束npm / nodemon
  • 来自mongo
  • 的Ctrl + C
  • 来自mongo
  • 的shutdownServer

在mongoose反映最新形式的架构之前,还有什么我需要完全关闭然后重启吗?谢谢!

1 个答案:

答案 0 :(得分:0)

要使用新架构重新开始,最好(如果可能)完全删除旧数据库("head1|head2|head3|"来自MongoDB shell),否则可能会遇到各种问题(也可能单独解决,如果删除数据库不是一个选项):

  • 剩余的集合,就像您正在使用的自动增量插件所使用的集合(我认为它将使用名为db.dropDatabase()的集合);
  • 剩余索引,当您在架构中定义应编入索引的字段名称时,会发生这种情况,然后您重命名或删除其中一个字段;

重新启动数据库服务器不会解决这些问题,它们确实需要一些手动管理。