Я хочу обновить документ mongodb на каждом l oop, но, похоже, не работает. Я использовал map для l oop через объект и получал
parallelSaveError: Не могу сохранить () то же самое сделать c несколько раз параллельно
Так что теперь используя asyn c .each, чтобы l oop через объект, но, кажется, mon goose только сохранить один раз. Код ниже
const openTrade = await TradeModel.find({
$and: [{ isOpen: true }, { price: { $lte: price } }]
})
.sort("volume")
.where({ userId: { $ne: req.authUser._id } });
trade = async openTrade => {
const buyerInfo = await UserModel.findById(req.authUser._id);
const buyerWallet = await WalletModel.findById(buyerInfo.walletId);
const sellerInfo = await UserModel.findById(openTrade.userId);
const sellerWallet = await WalletModel.findById(sellerInfo.walletId);
buyerWallet.balance = parseInt(buyerWallet.balance) - amountToPay;
sellerWallet.balance = parseInt(sellerWallet.balance) + amountToPay;
await Promise.all([sellerWallet.save(), buyerWallet.save()]);
};
async.forEachOf(openTrade, trade);
Итак, я наконец-то нашел проблему. Я не делал константу переменной customerInfo, sellerInfo и Wallets постоянной. Так что теперь это работает. Спасибо