MongoDB / Discord.js - 检查集合的存在

Posted

技术标签:

【中文标题】MongoDB / Discord.js - 检查集合的存在【英文标题】:MongoDB / Discord.js - checking existence of a collection 【发布时间】:2020-08-31 13:39:29 【问题描述】:

我用 MongoDB 创建了一个不和谐的机器人,并创建了一个命令来修改我的机器人商店中的一篇文章。 在修改特定文章之前,它必须已经在数据库中找到。是否可以查明在命令中键入的名称是否存在于数据库中?如果不存在,则返回错误消息。

    if(!oldName) return message.channel.send('<:croix:704272420873306165> You must indicate the name of your article')

    if(!newName) return message.channel.send('<:croix:704272420873306165> You must indicate the new name for your article')

    if() return message.channel.send('<:croix:704272420873306165> The name of the item doesn\'t exist.')

    await serverDB.set(message.guild.id,  $rename:  [ 'modules.SHOPECO.' + oldName ] : 'modules.SHOPECO.' + newName  )

    await serverDB.set(message.guild.id,  $set:  [ 'modules.SHOPECO.' + `$newName.NAME` ] : newName  )

    message.channel.send("Good !")

【问题讨论】:

告诉我们你到目前为止做了什么?你卡在哪里了? 你在用猫鼬吗? @Syntle 是的,我正在使用猫鼬 @SamimHakimi 我给你看了我上面的程序,第三个条件是空的,因为这就是我要问你的问题 @Cyra 请看看我的回答。 【参考方案1】:

您可以为此使用Model.findOne()。我不再建议 Model.exists() 的原因是,根据这个答案的 cmets,您正在尝试查询多个条件,您可以使用 findOne() 保持简单

ArticleModel.findOne( id: message.guild.id , (err, res) => 
  if (res.modules.SHOPECO.includes(args[0]) return message.reply('that article already exists!')
)

【讨论】:

zupimages.net/up/20/20/5g1o.gif 而不是“articleName”,我输入了['modules.SHOPECO'],但它不起作用(Cyra 是文章的名称)。还考虑到不和谐服务器 ID SHOPECO 是您的型号名称吗?如果是这样,那么做SHOPECO.exists() 不,我说的不是型号,而是“文章名称”,serverDB.exists(message.guild.id, ['modules.SHOPECO.' + oldName]: " " 看看我发送的图片的链接 您的查询没有意义,您需要像使用find()findOne() 一样使用exists()。为什么你有message.guild.id 在那里?给我一个你在modules.SHOPECO下寻找的确切例子,我会帮你查询 如果有意义的话,每个服务器都有一个id,因此有自己的数据,要知道它是否存在,数据库必须进入有问题的服务器的数据,否则它将无法工作,这就是我输入message.guild.id 的原因。在照片上,您在modules.SHOPECO 中看到“Cyra: Object”,我只想在我们键入命令时执行此操作,如果它出现在modules.SHOPECO 中,则为 0。我无法更好地解释它

以上是关于MongoDB / Discord.js - 检查集合的存在的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB Discord.js,uri 未定义

Discord.js/Mongodb 如何更新所有数据库值

discord.js 中的 MongoDB 缓存

不和谐机器人 |使用 discord.js 和 MongoDB 进行排名(排行榜?)系统

如何使用数据库(MongoDB)和 Discord.js 制作“setWelcome”命令?

如果有人 ping 一个处于 AFK 状态的成员,它会发送一条消息 | Discord.js / mongodb