全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Mongoose经常返回e11000 error的原因分析

发现问题

最近在工作中遇到了一个问题,在定义了schema之后,每一次save都会报E11000,但是db.xxx.find()里面根本就没有冲突的条目,什么情况呢?

问题分析

可能问题出在定义的schema的成员使用了unique,比如:

var CatalogSchema = new Schema({
 idCat: {
 type: String,
 default: '',
 trim: true,
 unique: 'Id should be unique!',
 required: 'Id cannot be blank'
 },
 titleCat: {
 type: String,
 default: '',
 trim: true,
 unique: 'Title should be unique!',
 required: 'Title cannot be blank'
 }
 });

mongoose.model('Catalog', CatalogSchema);

unique表示,不能冲突,迷惑的地方就是,没有冲突啊,其实还有一种可能,或许你压根想不到,就是确实冲突了,因为你给成员改名了。

用mongodb的命令行工具查看就知道:

> db.catalogs.getIndexes()
[
 {
 "v" : 1,
 "key" : {
  "_id" : 1
 },
 "name" : "_id_",
 "ns" : "ocr-dev.catalogs"
 },
 {
 "v" : 1,
 "unique" : true,
 "key" : {
  "name" : 1
 },
 "name" : "name_1",
 "ns" : "ocr-dev.catalogs",
 "background" : true
 },
 {
 "v" : 1,
 "unique" : true,
 "key" : {
  "title" : 1
 },
 "name" : "title_1",
 "ns" : "ocr-dev.catalogs",
 "background" : true
 },
 {
 "v" : 1,
 "unique" : true,
 "key" : {
  "idCat" : 1
 },
 "name" : "idCat_1",
 "ns" : "ocr-dev.catalogs",
 "background" : true
 },
 {
 "v" : 1,
 "unique" : true,
 "key" : {
  "titleCat" : 1
 },
 "name" : "titleCat_1",
 "ns" : "ocr-dev.catalogs",
 "background" : true
 }
]

问题解决

里面的name和title就是之前的名字,改成了idCat和titleCat,但是成员还是会在mongodb里面,所以,你要做的就是删除这个collection然后在重新运行mongoose了:

> db.catalogs.drop()
false
> db.catalogs.getIndexes()
[ ]

然后再在代码里面插入就不会有问题了。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# mongoose  # error  # mongoose源码分析  # 安装使用Mongoose配合Node.js操作MongoDB的基础教程  # Mongodb 数据类型及Mongoose常用CURD  # 关于mongoose连接mongodb重复访问报错的解决办法  # Node.js的MongoDB驱动Mongoose基本使用教程  # 详解Nodejs基于mongoose模块的增删改查的操作  # Mongoose学习全面理解(推荐)  # javascript-解决mongoose数据查询的异步操作  # 会报  # 会在  # 要做  # 然后再  # 一个问题  # 这篇文章  # 谢谢大家  # 你给  # 在工作中  # 命令行  # 出在  # 就不会有  # 改成了  # 想不到  # 就知道  # 使用了  # 有疑问  # class  # type  # default 


相关文章: 如何在建站主机中优化服务器配置?  开封网站制作公司,网络用语开封是什么意思?  如何通过网站建站时间优化SEO与用户体验?  桂林网站制作公司有哪些,桂林马拉松怎么报名?  如何基于云服务器快速搭建个人网站?  XML的“混合内容”是什么 怎么用DTD或XSD定义  制作国外网站的软件,国外有哪些比较优质的网站推荐?  安云自助建站系统如何快速提升SEO排名?  测试制作网站有哪些,测试性取向的权威测试或者网站?  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  已有域名如何快速搭建专属网站?  建站之星展会模板:智能建站与自助搭建高效解决方案  网站制作费用多少钱,一个网站的运营,需要哪些费用?  湖北网站制作公司有哪些,湖北清能集团官网?  如何高效完成自助建站业务培训?  如何用免费手机建站系统零基础打造专业网站?  ,巨量百应是干嘛的?  如何选择高效响应式自助建站源码系统?  如何用低价快速搭建高质量网站?  如何自定义建站之星网站的导航菜单样式?  建站之星好吗?新手能否轻松上手建站?  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  深圳企业网站制作设计,在深圳如何网上全流程注册公司?  广平建站公司哪家专业可靠?如何选择?  Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递  如何快速启动建站代理加盟业务?  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南  微网站制作教程,我微信里的网站怎么才能复制到浏览器里?  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  定制建站策划方案_专业建站与网站建设方案一站式指南  如何通过IIS搭建网站并配置访问权限?  建站之星展会模版如何一键下载生成?  如何破解联通资金短缺导致的基站建设难题?  北京网站制作公司哪家好一点,北京租房网站有哪些?  建站之星如何保障用户数据免受黑客入侵?  免费制作小说封面的网站有哪些,怎么接网站批量的封面单?  建站ABC备案流程中有哪些关键注意事项?  宝塔建站无法访问?如何排查配置与端口问题?  如何通过商城免费建站系统源码自定义网站主题?  建站之星如何开启自定义404页面避免用户流失?  seo网站制作优化,网站SEO优化步骤有哪些?  建站之星CMS五站合一模板配置与SEO优化指南  导航网站建站方案与优化指南:一站式高效搭建技巧解析  浅析上传头像示例及其注意事项  如何基于PHP生成高效IDC网络公司建站源码?  如何在新浪SAE免费搭建个人博客?  建站之星安装模板失败:服务器环境不兼容?  建站之星云端配置指南:模板选择与SEO优化一键生成  建站VPS选购需注意哪些关键参数? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。