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

首頁 > 語言 > JavaScript > 正文

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

2024-05-06 15:19:14
字體:
來源:轉載
供稿:網友

發現問題

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

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

總結

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 界首市| 南开区| 阿克| 赤水市| 建平县| 澜沧| 莱芜市| 鹰潭市| 剑川县| 祁东县| 香格里拉县| 论坛| 佳木斯市| 海南省| 南郑县| SHOW| 沂南县| 玛沁县| 偏关县| 隆回县| 滨海县| 汉中市| 和龙市| 资中县| 文安县| 谷城县| 麻栗坡县| 高尔夫| 建昌县| 峨边| 弥渡县| 罗山县| 金华市| 金坛市| 廊坊市| 梅州市| 桐梓县| 汨罗市| 启东市| 藁城市| 丽水市|