복붙노트

[MONGODB] 몽구스 -에 의해 : 11000 E11000 중복 키 에러 인덱스 발생?

MONGODB

몽구스 -에 의해 : 11000 E11000 중복 키 에러 인덱스 발생?

왜이 중복 에러가 발생합니까 - 오류가 새로운 사용자를 생성 : WriteError ({ "코드"11000 "인덱스"0 "에 errmsg": "insertDocument :: 의해 :: 11000 E11000 중복 키 에러 인덱스 발생?

모든 제공된 필드는 전혀 비어 있지 않은.

개요:

// Declare schema
var userSchema = new mongoose.Schema({
    username: {type: String, required: true, index: {unique: true}},
    password: {type: String, required: true},
    created_on: {type: Date, default: Date.now}
});

게시하다:

// Create - POST
// Create the first method of the API : POST used to create a new user.
router.post("/", function(req, res, next) {
    // Get values from POST request
    var username = req.body.username;
    var password = req.body.password;
    console.log(req.body); // { username: 'tealou', password: 'test123' }

    // Create new user document
    User.create({
        username: username,
        password: password
    }, function(err, user) {
        console.log(user); // undefined
        if (err) {
            console.log("Error creating new user: " + err);
            res.send("Error creating new user.");
        } else {
            console.log("POST creating new user: " + username);
            res.json(user);
        }
    })
});

오류:

어떤 아이디어?

해결법

  1. ==============================

    1.당신은 처음에 독특한로 설정 스키마의 이름라는 필드를했다.

    당신은 처음에 독특한로 설정 스키마의 이름라는 필드를했다.

    내가 어떻게 알아? 오류의 저를 그렇게 말하는 이유는

    duplicate key error index: **iotdb.users.$name_1**
    

    당신은 사용자 이름 필드 이름을 변경하지만, 이전 인덱스를 제거하지 않았다. 기본적으로 MongoDB를이 경우에 null로 존재하지 않는 필드의 값을 설정합니다.

    관련 문서 여기 :

    이 문제를 해결하려면 이름이 바뀐 이름 필드에 인덱스를 제거해야합니다.

  2. ==============================

    2.컬렉션을 삭제하고 내 코드를 다시 할 수 있도록 나를 위해 일한 것입니다.

    컬렉션을 삭제하고 내 코드를 다시 할 수 있도록 나를 위해 일한 것입니다.

  3. from https://stackoverflow.com/questions/38347186/mongoose-caused-by-11000-e11000-duplicate-key-error-index by cc-by-sa and MIT license