Search code examples
javascriptnode.jsmongoosediscorddiscord.js

How to grab data from an array in mongoose discord.js


Code:

                 ReactionRole.findOne({ guild_id: interaction.guild.id }, (err, settings) => {
                    if (err) {
                        const embed = new MessageEmbed()
                            .setColor('RED')
                            .setTitle('Error:')
                            .setDescription(`An error occured while getting the reaction roles`)
                            .setTimestamp()
                            .setFooter({ text: `Phantom Bot v${config.version}` });
                        
                        return interaction.reply({ embeds: [embed], ephemeral: true });
                    }

                    if (!settings) {
                        const embed = new MessageEmbed()
                            .setColor('RED')
                            .setTitle('Error:')
                            .setDescription(`There are no reaction roles for this guild`)
                            .setTimestamp()
                            .setFooter({ text: `Phantom Bot v${config.version}` });
                        
                        return interaction.reply({ embeds: [embed], ephemeral: true });
                    } else {
                        const mapped = Object.keys(settings.roles).map((value, index) => {
                            return(`\`${index + 1}.\` ${settings.roles[2]} - ${settings.roles[1]}`) 
                        }).join("\n\n");

                        const embed = new MessageEmbed()
                            .setColor('PURPLE')
                            .setTitle('Reaction Roles:')
                            .setDescription(`React with the emojis below to assign yourself a role`)
                            .addField('\u200B', `${mapped}`)
                            .setTimestamp()
                            .setFooter({ text: `Phantom Bot v${config.version}` });
                        
                        channel.send({ embeds: [embed] });
                    }
                });

Everything that I try to grab in the array where I declare mapped returns as undefined. How can I grab the data in the array?

The data from mongoose: Data from mongoose


Solution

  • Actually I just fixed it, happend to be as I posted this question. If anyone else is trying to find this out I ended up doing settings.roles[index]['(name of value u want to get here)']. In my case it was settings.roles[index]['emoji'] & settings.roles[index]['description']