当前位置: 首页 > 知识库问答 >
问题:

MongoError:E11000重复密钥错误集合:myFirstDatabase。tours索引:rating_1 dup键:{rating:null}

冯阳华
2023-03-14

MongoError:E11000重复密钥错误集合:myFirstDatabase。tours索引:rating_1 dup键:{rating:null}

当我使用postman创建数据时,我不理解这个错误,说dup key:{rating:null},在shcema中没有任何评级键,这是从哪里来的?为什么我只能创作一次。

这是我的代码(tourSchema)

const mongoose = require('mongoose');

const tourSchema = new mongoose.Schema({
 name:{
    type:String, 
    required:[true, 'tour must have name'], 
    unique:true,
    trim: true
},
ratingAverage: Number,
ratingQty:Number,
discount:Number,
price:{
    type:String, 
    required:[true, 'tour must have price']
},
summary:{
    type:String, 
    required:[true, 'tour must have summary'],
    trim:true
},
description:{
    type:String, 
    trim:true
},
imageCover:{
    type:String, 
    required:[true, 'tour must have imageCover'],
    trim:true
},
images: [String],
createdAt:{
    type:Date,
    default:Date.now()
},
startDate:[Date]
})
const Tour = mongoose.model('Tour', tourSchema);

 module.exports = Tour;

这是我试图添加的数据

{
"name":"the mountain explorer",
"ratingAverage":4,
"ratingQty":1,
"price":400,
"summary":"this is mountain explorer near to solua, best known for the river around it",
"description":"this mountain is located at the top of siraha mountain, has so many rivers around it",
"imageCover":"nepal_tour_cover-1.jpg",
"images":["nepal_tour-1.jpg", "nepal_tour-2.jpg", "nepal_tour-3.jpg"],
"startDate":["2020-03-12,12:44", "2020-04-12,12:54"]

}

共有1个答案

阎晋
2023-03-14

您在该集合中有一个唯一的评级索引。由于添加时未指定评级,因此评级为空,因此在第一次添加后出现此错误。由于您尝试添加的后续数据也没有评级,因此它们的评级为空,这与索引冲突。

首先,前往您的mongo控制台。

运行此命令

db.<collection>.getIndexes()

你应该有这样的记录

{
    "v" : 2,
    "unique" : true,
    "key" : {
        "rating" : 1
    },
    "name" : "rating"
}

接下来,运行此命令删除索引

db.<collection>.dropIndex("<index name>")
 类似资料:
  • 我试图从我的模式中的数组中删除一个特定的值(一个游戏),这是代码: 模式: 错误: MongoError:E11000重复密钥错误集合:mountain。用户索引:游戏。密码_1 errmsg:'E11000重复密钥错误集合:mountain。用户索引:游戏。密码\u 1 dup密钥:{games.password:null}',[Symbol(mongoErrorContextSymbol)]:

  • 我在一个djs机器人工作,我遇到了一个错误,我不知道如何修复我已经看了https://docs.mongodb.com/manual/indexes/和NodeJs,摩卡和猫鼬,但似乎没有什么帮助这里是信息- 错误发生在这里- 这是我的服务器模型/服务器架构- 最后,这是我得到的错误-

  • 出于某种原因,我的应用程序不允许我创建多个配置文件。下面是服务文件中的设置: //这将查找配置文件(如果存在) //如果一个不存在的话,应该创建一个 它适用于第一个用户,但当我创建另一个用户时,我会得到错误:{“error”:{“message”:“MongoError:E11000重复键错误集合:TownMiner.profiles index:info.subs_1 dup key:{info

  • 下面是模型中的架构- 这就是我在控制器中使用它的方式- 我就是这样把它保存在数据库里的- 错误- 我检查了数据库集合,没有这样的重复条目存在,让我知道我做错了什么? FYI-和正在获取值。 我也检查了这篇文章,但没有帮助堆栈链接 如果我完全删除,它就插入文档,否则它会抛出错误“重复”错误,即使我在local.email中有一个条目

  • 在node.js,从一个javascript循环,我试图插入一个json对象到一个mongoDB集合,但得到重复的键错误_id列。 {MongoError:E11000重复密钥错误集合:app.Tab2017index:id dup-key:{:ObjectId('5cbc813227b2ca2864b3c66a')} 这是我的javascript代码的一部分,它导致了错误。 以上代码在控制台上显

  • 为什么会出现此重复错误-? 提供的所有字段都不是空的。 架构: 职位: 错误: 创建新用户时出错:WriteError({“code”:11000,“index”:0,“errmsg”:“insertDocument::由引起::11000 E11000重复密钥错误索引:iotdb.users.$name_1 dup key:{:null}”,“op:{“username”:“tealou”,“p