Как сохранить несколько данных на мангусте - PullRequest
1 голос
/ 19 февраля 2020

Текущий код может сохранять отдельные данные. У меня есть несколько данных при входящем запросе. Как я могу сохранить несколько данных в Mongodb? Как вы можете видеть на изображении, есть 3 различных объекта.

data

Маршрут заказов

router.route("/api/orders").post((req, res) => {
  const body = req.body;
  console.log(body);

  const orderid = req.body.id;
  const ordername = req.bodyname;
  const orderdescription = req.bodydescription;
  const orderquantity = req.bodyquantity;
  const ordertotalprice = req.bodytotalPrice;
  const newOrder = new Orders({
    orderid,
    ordername,
    orderdescription,
    orderquantity,
    ordertotalprice
  });

  newOrder
    .save()
    .then(() => {
      console.log("Order Added!");
      res.status(200).json("Order Added!");
    })
    .catch(err => res.status(400).json("Error: " + err));
});

module.exports = router;

1 Ответ

1 голос
/ 19 февраля 2020

Тело вашего запроса - это массив объектов.

Вы можете использовать метод Model.insertMany () для вставки нескольких документов. Перед использованием insertMany убедитесь, что вы правильно преобразовали объекты в теле запроса в объект модели mon goose. Здесь я использовал javascript метод карты, чтобы показать пример, вам может понадобиться изменить это преобразование.

router.route("/api/orders").post((req, res) => {
  const body = req.body;
  console.log(body);

  let items = req.body.map(item => {
    return {
      orderid: item.id,
      ordername: item.name,
      orderdescription: item.description,
      orderquantity: item.quantity,
      ordertotalprice: item.totalPrice
    };
  });

  Orders.insertMany(items)
    .then(() => {
      console.log("Orders Added!");
      res.status(200).json("Order Added!");
    })
    .catch(err => res.status(400).json("Error: " + err));
});

module.exports = router;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...