亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-08-23 05:01:05 來源:腳本之家 閱讀:213 作者:多客博圖 欄目:web開發

發現問題

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

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

總結

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

沂源县| 华阴市| 江津市| 子洲县| 高碑店市| 始兴县| 娱乐| 铜川市| 循化| 文水县| 张家川| 阜宁县| 临桂县| 菏泽市| 芜湖市| 湘西| 独山县| 舞钢市| 黔西| 东平县| 盱眙县| 武鸣县| 南投市| 五台县| 郑州市| 吴江市| 乐至县| 田阳县| 怀宁县| 阜平县| 定安县| 湖南省| 特克斯县| 温宿县| 同心县| 志丹县| 望城县| 五寨县| 金川县| 襄城县| 荣昌县|