国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

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

2019-11-19 16:59:54
字體:
來源:轉載
供稿:網友

發現問題

最近在工作中遇到了一個問題,在定義了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()[ ]

然后再在代碼里面插入就不會有問題了。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對武林網的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巩留县| 房产| 久治县| 外汇| 北宁市| 梁山县| 白玉县| 桦川县| 伊金霍洛旗| 岗巴县| 乌拉特后旗| 枣庄市| 紫阳县| 进贤县| 武乡县| 闵行区| 台州市| 普格县| 资源县| 肃宁县| 莫力| 青阳县| 资溪县| 容城县| 龙海市| 新蔡县| 五莲县| 卢龙县| 桃源县| 得荣县| 博湖县| 河北省| 河东区| 广州市| 交口县| 泰州市| 甘德县| 博罗县| 阳城县| 黑龙江省| 秦皇岛市|