这是怎么回事

这是怎么回事

error: "E11000 duplicate key error collection: comment4.comments index: username_1 dup key: { username: "李四" }"

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

6回答
慕课网的粉 2020-08-19 17:15:22

老弟,我搞的时候,也出现了这个问题,删除了username这个唯一键就好了。有的时候不是我们自己代码书写的问题,可能是数据库自动给我们生成的唯一键,删掉就好了。或者你试下将username的unique属性设置为false试试,弄完别忘了重启下。出现了bug我们就记住,以后碰到了就会解决了。

好帮手慕粉 2020-08-19 11:30:27

同学你好,是的,误操作是会存在的。虽然用的人不知道,但是数据库中存的有信息,我们是知道的呀。那我们不就可以设置在注册的时候,如果用户名重复,那么就直接弹出注册失败不就行了,为什么还要让他进行后面的操作?老师这边测试,如果用户名注册重复,会直接弹出注册失败:

http://img1.sycdn.imooc.com//climg/5f3c9df90900ace408810378.jpg

只有注册成功,才会跳转到登录页面。

  • 提问者 慕雪9296518 #1
    我不知道怎么说了,我是在发布留言页面出的问题,登录是正常登陆的,只是在留言发表的时候出现的错误后,就一直发表失败知道到数据库删除了username_1这个东西才变正常
    2020-08-19 14:17:36
好帮手慕粉 2020-08-19 11:12:22

同学你好,不是老师答非所问,是同学出现了这个问题,就是要用这个方法解决的呀。因为用户名设置了unique,所以它就不能重复设置,这是规定。如果想重复输入,那就要将它的unique去掉才可以。属性设置了unique以后是不能重复的,同学只需要记住这一点就可以了,就像我们在别的网站注册时,如果跟别人的用户名设置重复,也会提醒我们注册失败等信息的。

  • 提问者 慕雪9296518 #1
    关键你们没理解我的意思,有些属性是一定要设置unique的,而误操作也是存在的,并不说属性设置了unique以后是不能重复的所以大家都不重复,而是万一用的人不知道然后重复了呢???这个bug不就是因为重复了之后会导致后续这个创建属性时会不断出错,总不能每次出现这个问题跑去数据库又操作一次把,我的意思时怎么才可以在输入错误时候防止这个bug继续影响功能的使用,因为我出错了一次后发现这个bug一直会影响新的录入知道我回数据库进行删除操作。
    2020-08-19 11:19:43
好帮手慕言 2020-08-18 17:57:28

同学你好,因为存在下方内容,所以在插入重复数据时,就会报错。

http://img1.sycdn.imooc.com//climg/5f3ba54409eec6b110060320.jpg

把上方红框中的内容去掉,同学再测试下。祝学习愉快~

  • 提问者 慕雪9296518 #1
    那我总不能一直这样做把!!!!!我就是问怎么预防这种情况发生,你们怎么总是给我答非所问
    2020-08-19 09:47:43
好帮手慕言 2020-08-18 14:35:03

同学你好,存储在MongoDB的每一条数据,都拥有一个专属的id,充当主键,主键是当前数据的标识。比如  学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯一的,学号就是一个主键。

Schema 是定义数据规范的,和主键没有直接的关系。

祝学习愉快~

  • 提问者 慕雪9296518 #1
    那我就想问清楚,这个问题是怎么出现的
    2020-08-18 14:43:13
好帮手慕粉 2020-08-18 10:51:36

同学你好,看同学的报错信息是设置了重复的主键,同学可以检查下自己的数据库中是否已经有‘李四’这个用户名,如果同学将用户名设置为主键的话,那么重复插入相同的用户名就会报错。

如果我的回答帮助了你,欢迎采纳。祝学习愉快~

  • 提问者 慕雪9296518 #1
    老师好,什么叫做主键呢??跟schema设置有关系嘛???希望老师就主键这个只是点给我详细解释一下
    2020-08-18 11:15:04
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
5. Node.js全栈开发
  • 参与学习           人
  • 解答问题       307    个

前端工程师会后端开发已是趋势。从node.js到koa2再到数据库知识。结合真实项目,从项目需求分析、接口和数据设计到业务开发,帮你打通前后端任督二脉,为就业加码。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师