как поместить элементы mongodb в переменные для discord bot?

#node.js #mongodb #discord #discord.js

#node.js #mongodb #Discord #discord.js

Вопрос:

Это модель:

 Schema = mongoose.Schema;

module.exports = mongoose.model(
    "Leveling",
    new Schema({
      guildID: { 
          type: String
      },
      guildName: {
          type: String
      },
      roletoad: {
          type: String,
          default: "null"
      },
      roletoremove: {
          type: String,
          default: "null"
      },
      rolelevel: {
          type: Number,
          default: 0
      },
    })
  );
  

Это команда для получения всех ролей прокачки в определенной гильдии:

 if(args[0]==="list"){
    const del = await Leveling.find({
        guildID: message.guild.id,
    },{ 
        _id: 0,
        roletoad: 1,
        roletoremove: 1,
        rolelevel:1
    })
        
    return await message.channel.send(del)
}

  

Это вывод:

 {
  roletoad: '735106092308103278',
  roletoremove: '731561814407774248',
  rolelevel: 5
}
{
  roletoad: '735598034385371167',
  roletoremove: '744562691817078905',
  rolelevel: 7
}
  

Я хочу знать, как получить каждый элемент (roletoad, roletoremove, rolelevel) в определенной переменной.

Комментарии:

1. Чтобы было понятно, вы получаете массив объектов из базы данных, верно?

2. @AnujPancholi да

Ответ №1:

Кажется, вы получаете массив объектов из вашей базы данных в del переменной, и каждый объект в этом массиве имеет свойства roletoad , roletoremove и rolelevel , которые вы хотите в отдельных переменных.

Для каждого объекта вашего массива вы можете сохранить эти свойства в переменных путем деструктурирования объекта. Один из подходов заключается в следующем:

 //the data you'll get from the db
const del = [{
  roletoad: '735106092308103278',
  roletoremove: '731561814407774248',
  rolelevel: 5
},
{
  roletoad: '735598034385371167',
  roletoremove: '744562691817078905',
  rolelevel: 7
}]


for(const {
  roletoad: yourRoleToAddVar,
  roletoremove: yourRoleToRemoveVar,
  rolelevel: yourRoleToLevelVar
  } of del){
  
  console.log(`Role to add: ${yourRoleToAddVar}`)
  console.log(`Role to remove: ${yourRoleToRemoveVar}`)
  console.log(`Role Level: ${yourRoleToLevelVar}`)
  console.log(`---------------------------`)
  //do what you want with these variables here
  
  }  

ПРИМЕЧАНИЕ: Это должно быть само собой разумеющимся, но область действия этих переменных будет действительна только в этом цикле.