Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 更改Mongoose架构时重新启动本地MongoDB的正确过程_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js 更改Mongoose架构时重新启动本地MongoDB的正确过程

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开始 这只是我遇到的问题之一。我在运行中所做的其他一些类似的模式更改也没有反映出来 我尝试了以下方法: 结束

大家好,我刚刚学会如何使用Mongoose和Express使用Node.js进行开发。我在Mongodb中遇到了一些问题,无法正确反映我的模式更改

例如,我编写了一个模型,当插入每个新文档时,该模型假定从0开始自动递增
\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
集合,我可以手动重置要“重新启动”的集合的开始计数不确定您是否看到了这一点,但您也可以从模型中重置计数器,请参阅。