Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.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 已删除MongoDB中的唯一约束,请使用相同的名称重新创建_Node.js_Mongodb - Fatal编程技术网

Node.js 已删除MongoDB中的唯一约束,请使用相同的名称重新创建

Node.js 已删除MongoDB中的唯一约束,请使用相同的名称重新创建,node.js,mongodb,Node.js,Mongodb,在开始我的项目的过程中,我了解了我如何在mongoose中将modal定义为唯一的 比如说: 某一天之后,出现了一种情况,我删除了唯一密钥,现在我的模型是: var CategorySchema = new Schema({ categoryName:String,, discription:String }); 现在真正的问题是,当我发布并插入文档时,它仍然会创建categoryName的索引 想知道为什么仍然会出现这种情况,以及如何在生产中从这些错误

在开始我的项目的过程中,我了解了我如何在mongoose中将modal定义为唯一的 比如说:

某一天之后,出现了一种情况,我删除了唯一密钥,现在我的模型是:

var CategorySchema = new Schema({
        categoryName:String,,
        discription:String
    });
现在真正的问题是,当我发布并插入文档时,它仍然会创建categoryName的索引


想知道为什么仍然会出现这种情况,以及如何在生产中从这些错误中恢复。

是。因为索引仍然存在于MongoDB中。仅仅从mongoose模型中删除并不会从数据库中删除唯一索引。您必须删除索引。@hiren每次删除索引都不是一个永久的解决方案,任何其他选项都不能用于在进入livemongoose之前重置索引。连接[0]。集合(“collectionname”)。dropIndex(“propertyName”,callback)。我想人们通常不会频繁分配和删除删除删除索引。在开发中,如果要删除,可以调用上述代码。@hiren您是对的,索引不经常分配和删除。但问题是,一旦开发人员创建了索引,他们就无法永久删除索引,他们会花时间删除索引。它需要一个选项,即contastraint delete,删除相同的引用。
var CategorySchema = new Schema({
        categoryName:String,,
        discription:String
    });