【问题标题】:FindOne not finding item in array properly discordjsFindOne 没有正确找到数组中的项目 discordjs
【发布时间】:2021-07-30 15:13:15
【问题描述】:

我试图在用户的项目数组中找到一个项目,他的 id 不和谐。我有这个

        const data = inv.findOne({User: message.author.id})
        if(!data) {
            return message.reply("You own no items. Buy something to trade")
        }
        if(item === 'hat') {
           const itemfound =  data.find({User: message.author.id, Items: '????Hat'})
           if(itemfound) {
               return message.reply("FOund!")
           }
        }

但是当我的项目数组中没有该项目时,它会不断返回

【问题讨论】:

    标签: arrays mongodb discord.js


    【解决方案1】:

    假设inv 是一个模型,inv.findOne(...) 返回一个Querydata.findOne(...) 也返回一个QueryQueryif(itemfound) 中被转换为真值,在if(!data) 中被转换为假值。添加awaitexec()(可选)语句应该可以解决这个问题。还有data.find().exec()返回一个数组,即使是空的也是真的。

            const data = inv.findOne({User: message.author.id})
            if(!await data.exec()) {
                return message.reply("You own no items. Buy something to trade")
            }
            if(item === 'hat') {
               const itemfound =  await data.find({User: message.author.id, Items: '?Hat'}).exec()
               if(!itemfound.length) {
                   return message.reply("FOund!")
               }
            }
    

    【讨论】:

      猜你喜欢
      • 2012-07-17
      • 2019-04-12
      • 2019-10-11
      • 1970-01-01
      • 2012-11-09
      • 2018-07-22
      • 1970-01-01
      • 2016-05-28
      • 1970-01-01
      相关资源
      最近更新 更多