Perdóneme por mi mala explicación, soy muy nuevo en la codificación. (robot de discordia)
Así que tengo una matriz con 2 valores requeridos (nombre de personaje y fragmentos) y 1 valor opcional (enlace de imagen de personaje) Es básicamente una función en la que cada usuario puede tener múltiples 'caracteres' y quiero eliminar un carácter usando solo el nombre del carácter como entrada, a partir de los datos de ese usuario cuando se ejecuta un comando.
Estos son mis datos ahora mismo:
{ "_id" : ObjectId("62593f2380fea1cee9f986ed"), "userID" : "321311458459779073", "characters" : [ { "characterName" : "Akasuka", "characterImg" : "", "shards" : "0" }, { "characterName" : "Nigeria", "characterImg" : "", "shards" : "0" } ], "__v" : 3 }Mi código para eliminarlo:
(prof = base de datos que necesité en la parte superior usando const prof = require("../../Schemas/ProfileDB"); ) (cName = entrada del comando)
prof.findOne({ userID: pUser.id }, async (err, data) => { if (err) throw err; if (data) { const id = data._id prof.updateOne( { userID: pUser.id }, { $pull: {'characters': {characterName: cName}}}, { safe: true } ) data.save() } })Y, bueno, como habrás adivinado, no elimina el objeto de la matriz.