Я сохраняю некоторые пользовательские данные, но вижу ошибку дублирования ключа MongoDB в поле, которое я не объявил.Javascript

Форум по Javascript
Ответить
Anonymous
 Я сохраняю некоторые пользовательские данные, но вижу ошибку дублирования ключа MongoDB в поле, которое я не объявил.

Сообщение Anonymous »

Я тут немного схожу с ума. Я завершаю свой старый проект с помощью Express и Mongoose с логином Google Firebase. С моим первым тестовым пользователем все работало нормально, но как только я попытался войти в систему со второй новой учетной записью, я получил эту ошибку:

Код: Выделить всё

E11000 duplicate key error collection: test.users index: username_1 dup key: { username: null }
Странно то, что у меня даже нет имени пользователя в моей схеме.
Я проверил файл models/User.js десять раз. Я использую только имя, адрес электронной почты, роль и googleId. Я даже не отправляю имя пользователя из своего интерфейса.

Код: Выделить всё

const userSchema = new mongoose.Schema({
name: { type: String, required: true },
email: { type: String, required: true, unique: true },
role: { type: String, enum: ["founder", "mentor"], required: true },
googleId: { type: String, required: true },
//other imp fields
}, { timestamps: true });

module.exports = mongoose.model("User", userSchema);
И мой маршрут:

Код: Выделить всё

// This fails on user.save() for the second person who tries to sign up
const user = new User({
name: req.body.name,
email: req.body.email,
role: req.body.role,
googleId: req.body.uid
profilePicture: req.body.picture,
bio:"",
});
await user.save();
Ошибка в журналах:

Код: Выделить всё

MongoServerError: E11000 duplicate key error collection: test.users index: username_1 dup key: { username: null }
at InsertOneOperation.execute (/home/samiii/Documents/prabal_project/backend/node_modules/mongodb/lib/operations/insert.js:51:19)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async tryOperation (/home/samiii/Documents/prabal_project/backend/node_modules/mongodb/lib/operations/execute_operation.js:207:20)
at async executeOperation (/home/samiii/Documents/prabal_project/backend/node_modules/mongodb/lib/operations/execute_operation.js:75:16)
at async Collection.insertOne (/home/samiii/Documents/prabal_project/backend/node_modules/mongodb/lib/collection.js:157:16) {
errorLabelSet: Set(0) {},
errorResponse: {
index: 0,
code: 11000,
errmsg: 'E11000 duplicate key error collection: test.users index: username_1 dup key: { username: null }',
keyPattern: { username: 1 },
keyValue: { username: null }
},
index: 0,
code: 11000,
keyPattern: { username: 1 },
keyValue: { username: null }
}
Любая помощь будет огромной. Спасибо!!

Подробнее здесь: https://stackoverflow.com/questions/798 ... field-i-ha
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»