MongoDB E11000 Ошибка дублированного ключа в mydb.testlookup.$ Name dup key:{:dummy123} в стеках с использованием генератора углового полного стека
Привет, я пытаюсь создать простой проект с использованием генератора angular-fullstack. У меня работает MongoDB и nodejs в Windows, все установлено и работает отлично. Я создал одну схему следующим образом
'use strict';
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
var TestlookupSchema = new Schema({
name: String,
ccode: String,
description: String,
info: String,
active: Boolean
});
module.exports = mongoose.model('Testlookup', TestlookupSchema);
Я не трогал другие схемы по умолчанию, которые идут вместе с демо-приложением генератора. всякий раз, когда я вставляю какую-либо запись в эту коллекцию, я получаю ошибку ниже
E11000 duplicate key error index: mydb.testlookup.$name dup key: {:dummy123}
Я использую Windows 7 в качестве операционной системы NodeJS 4.xx Mongodb 3.x
Что может быть причиной этой ошибки?
1 ответ
У меня та же проблема, но я решил ее, удалив индекс. На самом деле, когда генерируется приложение angular-fullstack, оно создаст схему Thing, там будет поле имени, а когда вы создадите другую схему с таким же полем имени, она создаст Index. Если вы введете те же данные, что и в вашем случае "dummy123", в поле имени для обеих схем, это приведет к ошибке индексации ввода дублированного ключа - E11000
Решение для этого, если вы находитесь в Windows Gotto Mongo Shell
command prompt - mongo.exe
use mydb
db.mydb.getIndexes()
Вы найдете имя в качестве индекса просто перетащите и воссоздать его
db.mydb.dropIndex( "name")
Теперь вы перезапускаете свое приложение для узлов, используя grunt