mongodb - 如何在嵌入(discord.js)中映射来自猫鼬数据库的数据
问题描述
问题
下面的代码将数据库中的数据映射到MessageEmbed.description
. 我想将每个数据映射到MessageEmbed.fields
. 我尝试使用for()
循环,但我想简要了解如何做到这一点,因为我使用了 2 个侦听器:- w(数据内容)和i(数据在 db 中的位置)。
我的代码
await db.findOne({ guildid: message.guild.id, user: member.user.id }, async(err, data) =>{
if(err) throw err;
if(data) {
const embed = new Discord.MessageEmbed()
.setTitle(`${message.author.tag}`)
.setDescription(
data.content.map(
(w, i) =>
`\`${i + 1}\` | **${w.data1}**\n**${w.data2}**`
)
)
.setFooter(`Total : ${data.content.length}`)
message.channel.send(embed)
} else {
message.channel.send('No data found')
}
});
for() 循环 [我的尝试]
for(w, i of data.content){
embed.addField(`${i + 1}`, `${w.data1}\n${w.data2}`, true)
};
但是,这导致了错误。
解决方案
您可以使用.forEach()
which 将产生当前元素以及当前索引:
data.content.forEach((w, i) => {
embed.addField(`${i + 1}`, `${w.data1}\n${w.data2}`, true);
});
如果要坚持for
循环,请使用for .. in
获取索引:
for (let i in data.content){
let w = data.content[i];
embed.addField(`${i + 1}`, `${w.data1}\n${w.data2}`, true);
}
不过我不推荐后者。
推荐阅读
- javascript - 如何使用 JSON 通过输入创建和修改数据?
- python - 为数据框中的每一行创建平均值
- kotlin - Kotlin:从对列表而不是可变参数创建可变映射?
- react-portal - 在 react-portal v4 中未出现 openByClickOn 按钮
- mongodb - 如何在 $lookup 聚合 Mongodb 中使用 let
- reactjs - 重置表单但从中保存一个值
- python - 如何使用python对不同excel文件中的数字求和?
- sdk - js 中的 Dymo SDK 打印乱码
- ios - 如何在 Xcode iOS 中创建另一个场景
- python - 将数据重新采样到训练中,对 Boostrapping python 进行有效和测试