如何检查 quick.db 中是不是存在特定的东西?

Posted

技术标签:

【中文标题】如何检查 quick.db 中是不是存在特定的东西?【英文标题】:How to check if a specific thing exists in quick.db?如何检查 quick.db 中是否存在特定的东西? 【发布时间】:2021-09-27 20:35:32 【问题描述】:

所以我正在制作一个不和谐的游戏机器人,您可以通过打开箱子来收集角色,但问题是当您已经拥有角色时它们会再次出现。

我用的方法db.push

代码:

if(has === true)
  console.log(has)
  let embed = new discord.MessageEmbed()
.setTitle('Chest Opening | *** Chest')
.setDescription("<@"+message.author+"> got:\n"+amount+" :coin:")
.setColor('RANDOM')
.setFooter('Created by Tahmid GS#1867')
 message.channel.send(embed)
  await db.fetch(`coin_$message.author.id`)
  db.add(`coin_$message.author.id`, amount)

else if(has === false)
  console.log(has)
await db.fetch(`troop_$message.author.id`)
db.push(`troop_$message.author.id`, nada)



let embed = new discord.MessageEmbed()
.setTitle('Chest Opening | *** Chest')
.setDescription("<@"+message.author+"> got:\n"+amount+" :coin:\n||Common: "+nada+"||")
.setColor('RANDOM')
.setFooter('Created by Tahmid GS#1867')
  
  message.channel.send(embed)

   await db.fetch(`coin_$message.author.id`)
  db.add(`coin_$message.author.id`, amount)
  await db.fetch(`card_$message.author.id`)
  db.add(`card_$message.author.id`, 1)

已经是let has = db.has(troop_$message.author.id, nada) 我用 let has = db.has(troop_$message.author.id.nada) 并让 has = db.has(nada,troop_$message.author.id)

但是好像不行,在控制台里是“假”

nada 是随机字符

【问题讨论】:

【参考方案1】:

您正在检查数据库是否具有特定键。在troop_$message.author.id 键下的数据库中有一个数组。您想检查该数组是否包含该字符。

let has = (db.get(`troop_$message.author.id`) || []).includes(nada);

您可能还想检查db.get() 返回undefined 或类似的可能性。在这种情况下,我们在一个空数组上调用.includes()。而不是得到一个错误TypeError: Cannot read property 'includes' of undefined

【讨论】:

以上是关于如何检查 quick.db 中是不是存在特定的东西?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法检查用户是不是在 quick.db 中有特定项目

如何检查用户是不是在公会中

检查 JavaScript 对象中是不是存在键?

如何检查哈希中是不是存在特定键?

如何检查哈希中是不是存在特定值?

如何检查.NET中特定时区是不是存在一个小时