Привет, друзья-разработчики! Эта ошибка появляется в моей консоли, когда я пытаюсь сохранить два идентичных документа в коллекции в MongoDB, которая не имеет ничего общего с индексом, указанным в ошибке.
Вот ошибка: Коллекция ошибок дублированного ключа E11000: Bohemian.orders index: user.email_1 dup key: {user.email: null}
Теперь это не имеет смысла, потому что я пытаюсь сохранить документ заказа в отдельная коллекция, не имеющая ничего общего с настроенным мной ранее пользовательским маршрутизатором.
Вот схема и код модели:
const mongoose = require('mongoose');
const orderSchema = new mongoose.Schema({
amountToPay: Number,
});
const Order = mongoose.model("Order", orderSchema);
module.exports.Order = Order;
Как показано здесь, я всего лишь пытаюсь сохранить сумму, подлежащую выплате, в базу данных в отдельной коллекции.
Вот файл роутера:
const express = require('express');
const router = express.Router();
const { Order } = require('../models/Order');
router.get("/", async (req, res, next) => {
try {
const orders = await Order.find();
if (orders.length === 0) return res.status(404).send("There are currently no orders");
res.send(orders);
} catch (ex) {
console.error(ex);
next();
}
});
router.post("/", async (req, res, next) => {
try {
const order = new Order({
amountToPay: req.body.amountToPay
});
await order.save();
res.send(order);
} catch (ex) {
console.error(ex);
next();
}
});
module.exports = router;
Как вы можете видеть, нет ничего, что связано с ошибкой, которую я получаю, и я понятия не имею, почему я получаю дубликат ключа user.email = null, когда я не упомянул модель пользователя или маршрутизатор.
Вот вызов POST, который я делаю из POSTMAN для тестирования:
Довольно прямолинейно, ничего экстремального, ничего запутанного , право? Ну, первый вызов POST сохраняет документ в базе данных, но с тех пор я продолжаю получать ту же ошибку. Единственное, что я могу извлечь из этого, - это то, что когда я сохраняю первый документ, Mon go ищет свойство user.email, когда я создаю новый экземпляр Order, и когда он не находит его, он создает его с значение null, а затем следующий документ, естественно, будет дубликатом, отсюда и ошибка. Но я запутался, потому что эта модель и роутер не должны абсолютно ничего общего с пользовательскими.
Вот ошибка:
Так что, пожалуйста, если кто-нибудь может помочь мне понять, почему MongoDB лажает со мной или где я делаю ошибку, я был бы очень признателен.