Node.js 更改Mongoose架构时重新启动本地MongoDB的正确过程
大家好,我刚刚学会如何使用Mongoose和Express使用Node.js进行开发。我在Mongodb中遇到了一些问题,无法正确反映我的模式更改 例如,我编写了一个模型,当插入每个新文档时,该模型假定从0开始自动递增Node.js 更改Mongoose架构时重新启动本地MongoDB的正确过程,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,大家好,我刚刚学会如何使用Mongoose和Express使用Node.js进行开发。我在Mongodb中遇到了一些问题,无法正确反映我的模式更改 例如,我编写了一个模型,当插入每个新文档时,该模型假定从0开始自动递增\u id。我正在测试一些实现这个模型的方法,所以我不断地插入不同的数据 每次尝试重新插入数据时,我都会删除集合。但是,\u id不是从0开始,而是从上一个最大的\u id开始 这只是我遇到的问题之一。我在运行中所做的其他一些类似的模式更改也没有反映出来 我尝试了以下方法: 结束
\u id
。我正在测试一些实现这个模型的方法,所以我不断地插入不同的数据
每次尝试重新插入数据时,我都会删除集合。但是,\u id
不是从0开始,而是从上一个最大的\u id
开始
这只是我遇到的问题之一。我在运行中所做的其他一些类似的模式更改也没有反映出来
我尝试了以下方法:
- 结束npm/nodemon
- Ctrl+C从
mongo
- 从
mongo关闭服务器
在mongoose反映模式的最新形式之前,我是否还需要完全关闭然后重新启动?谢谢 从新模式开始,最好(如果可能的话)完全删除旧数据库(
db.dropDatabase()
),否则您可能会遇到各种问题(如果不能删除数据库,也可以单独解决):
- 剩余的集合,比如您正在使用的autoincrement插件所使用的集合(我认为它将使用一个名为
)的集合)李>identitycounters
- 剩余索引,当您在模式中定义应该索引的字段名,然后重命名或删除其中一个字段时,会发生这种情况李>
重新启动数据库服务器并不能解决这些问题,它们确实需要一些手动管理。要重新启动新架构,最好(如果可能)完全删除旧数据库(
db.dropDatabase()
,从MongoDB shell中删除),否则可能会遇到各种问题(如果不选择删除数据库,也可以单独解决):
- 剩余的集合,比如您正在使用的autoincrement插件所使用的集合(我认为它将使用一个名为
)的集合)identitycounters
- 剩余索引,当您在模式中定义应该索引的字段名,然后重命名或删除其中一个字段时,会发生这种情况
重新启动数据库服务器并不能解决这些问题,它们确实需要一些手动管理。鉴于MongoDB不支持这种现成的东西,您如何实现自动增量?这个软件包我也面临同样的问题。这令人难以置信地沮丧。这应该是MongoDB的固有特性。您如何实现自动增量,考虑到MongoDB不支持这种开箱即用的东西?这个软件包我也面临着同样的问题。它令人难以置信地沮丧。这应该是MongoDB特有的。我想这个问题是我选择mongoose auto increment时所特有的。我使用了
identitycounters
集合,我可以手动重新设置设置要“重新启动”的集合的开始计数不确定您是否看到过这一点,但您也可以从您的模型中重置计数器,请参阅。谢谢,我想这是我选择mongoose auto increment时遇到的特殊问题。我使用了identitycounters
集合,我可以手动重置要“重新启动”的集合的开始计数不确定您是否看到了这一点,但您也可以从模型中重置计数器,请参阅。