#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 }