FindOne 没有正确找到数组中的项目 discordjs
Posted
技术标签:
【中文标题】FindOne 没有正确找到数组中的项目 discordjs【英文标题】:FindOne not finding item in array properly 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!")
但是当我的项目数组中没有该项目时,它会不断返回
【问题讨论】:
【参考方案1】:假设inv
是一个模型,inv.findOne(...)
返回一个Query
,data.findOne(...)
也返回一个Query
。 Query
在if(itemfound)
中被转换为真值,在if(!data)
中被转换为假值。添加await
和exec()
(可选)语句应该可以解决这个问题。还有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!")
【讨论】:
以上是关于FindOne 没有正确找到数组中的项目 discordjs的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 findOne 查询 mongodb 并排除数组中的一些嵌套字段
foobar2000无法打开cue文件无法打开用于播放的项目(对象未找到): .Disc.Sky].专辑.(FLAC).cue" / index: 1