Документ мангуста.updateOne() работает не так, как ожидалось

#node.js #mongodb #express #mongoose

#node.js #mongodb #экспресс #мангуст

Вопрос:

код

Привет, я пытаюсь обновить свой документ с помощью document.updateOne() в мангусте, но только поле баланса, нижние строки,

 const username = req.params.username;  try {  const partner = await Partner.findOne({ username });  await partner.updateOne({ isApproved: true });  const ref = await Partner.findOne({ username: partner.referer });  if (ref) {  await ref.updateOne(  {  $inc: { points: 10 },  referer: partner.referer,  $inc: { earnings: 10 },  $inc: { balance: 10 },  $push: { downlines: partner.username },  },  { new: true }  );  const grandRef = await Partner.findOne({ username: ref.referer });  if (!grandRef) {  res  .status(200)  .json(  'Partner approval was successfull with a referrer but no grand referrer'  );  } else {  await grandRef.updateOne(  {  $inc: { points: 3 },  grandReferer: ref.referer,  $inc: { earnings: 3 },  $inc: { balance: 3 },  $push: { grandDownlines: partner.username },  },  { new: true }  );  res  .status(200)  .json(  'Partner approval was successfull with both referrer and grand referrer'  );  }  } else {  res  .status(200)  .json(  'Partner approval was successfull without a referrer or a grand referrer'  );  }  } catch (err) {  res.status(500).json('Something went wrong');  console.log(err);  } 

и обновления grand_downlines, но доходы и баллы не обновляются. Пожалуйста, проверьте мой фрагмент на прикрепленном изображении и помогите.

Ответ №1:

Хорошо, я просто понял, потому что я использую «$inc» более одного одновременно, и если я изменю позиции, последние обновления «$inc», поэтому я использовал выражения.

 {  $push: { downlines: partner.username },  points: ref.points   10,  balance: ref.balance   10,  earnings: ref.earnings   10,  },  { new: true }