Estoy haciendo un comando Usar con Mongoose y Discordjs. Todo funciona bien, pero hay un problema con la base de datos.
Cuando trato de usarlo, como .use box 5 , tiene que eliminar 5 casillas de la base de datos, pero solo elimina 1.
Mi código:
function random(min, max) { return Math.round(min + Math.random() * (max - min)); } const profileModel = require("../../models/users") const user = await profileModel.findOne({ userID: message.author.id }) if (!args[0]) return message.reply("WHAT THE HELL ARE YOU GOING TO USE :|") let item = user.inventory.find(v => v.name.toLowerCase() === args[0].toLowerCase()); if (!item) { return message.channel.send("You Dont have That Item"); } if (item.use === false) return message.reply("This Item Is Not Usable") function runUpdate(obj) { return new Promise((resolve, reject) => { profileModel.findOneAndUpdate({ userID: message.author.id }, { "$pull": { "inventory": obj } }) .then(result => resolve()) .catch(err => reject(err)) }); }; itemusing = args[0].toLowerCase() if (!args[1]) amount = 1 else amount = Math.floor(args[1]) console.log(amount) if (itemusing === "box") { if (amount > 1) { for (let m = 0; m < amount + 2; m++) { console.log(m) runUpdate(item) } let newboxes = 0; let coins = 0; for (let i = 0; i < amount; i++) { const rnd = random(1, 10) if (rnd <= 6) abox = false else abox = true const amountrnd = random(1000, 5000) if (abox === true) { newboxes += 1 coins += amountrnd } else { coins += amountrnd } } if (newboxes >= 1) { await profileModel.findOneAndUpdate({ userID: message.author.id }, { "$inc": { "coins": coins } }); await message.reply(`You Found These In ${amount} Box(s):\n\n${coins} Coins\n${newboxes} Boxes`) } else { message.reply(`You Found These In ${amount} Box(s):\n\n${coins} Coins`) await profileModel.updateOne({ userID: message.author.id }, { "$inc": { "coins": coins } }); } } else { message.reply("Soon") } }No hay error por cierto. También incrusté algunas capturas de pantalla de cuando uso el comando:

Tenía 46 antes de usar el comando; después de usar (5) cajas tengo 45.
Prueba esto:
profileModel.findOneAndUpdate({ userID: message.author.id },{"$pull": { "inventory": obj } },{returnNewDocument: true})o (a continuación debería funcionar para NodeJS )
profileModel.findOneAndUpdate({ userID: message.author.id },{"$pull": { "inventory": obj } },{returnOriginal: false}) O findAndModify() en lugar de findOneAndUpdate()
Descargo de responsabilidad: no he ejecutado el código anterior. Basado en mi conocimiento sobre findAndModify y findOneAndUpdate, respondí.