обработка текущего обновления в mongodb с mongoose - PullRequest
0 голосов
/ 10 марта 2020

каждый

У меня есть функция, которая находит документ и обновляет его массив.

, когда я пытаюсь вызвать его несколько раз одновременно, он выходит из строя

i попытался перейти от save () к update (), но он все еще не работает должным образом, и массив обновляется только один раз

. Как мне ждать, пока каждый запрос не завершит sh обновление документа, а затем снова обновить документ ?

  async function(req, res) {
  if (
    !req.body.auctionId ||
    !req.body.productId ||
    !req.body.price ||
    !req.body.addedPrice
  ) {
    return res.status(500).send();
  }
  const { auctionId, productId, price, addedPrice } = req.body;

  let auctionProduct = await AuctionProduct.findOne({
    auctionId,
    product: productId
  }).exec();
  if (!auctionProduct) return res.sendStatus(400);
  if (auctionProduct.endDate < Date.now()) {
    return res.sendStatus(409);
  }

  const newBid = new AuctionBid({
    bidder: req.user._id,
    price: auctionProduct.currentPrice + addedPrice,
    addedPrice,
    product: auctionProduct.product,
    auction: auctionId
  });

  await newBid.save();
  auctionProduct.highestBid = newBid._id;
  auctionProduct.currentPrice =
    auctionProduct.currentPrice + newBid.addedPrice;
  auctionProduct.history = [newBid._id, ...auctionProduct.history];
  await auctionProduct.save();
  res.send();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...