91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

东丽区| 土默特右旗| 陇西县| 丽江市| 乌鲁木齐市| 顺昌县| 本溪| 徐闻县| 仁怀市| 明溪县| 武冈市| 黄浦区| 环江| 马尔康县| 巴东县| 乾安县| 绵竹市| 千阳县| 赤城县| 泾源县| 通许县| 和硕县| 东海县| 洪洞县| 湖南省| 齐齐哈尔市| 龙南县| 桦川县| 尉犁县| 四川省| 莱芜市| 赤城县| 禄丰县| 密山市| 大化| 广东省| 汾阳市| 壤塘县| 通化县| 惠水县| 宁津县|