node.js - 如何阻止在 Mongoose 数组中创建重复项 | NodeJS 猫鼬
问题描述
好的,我如何阻止在 Mongoose 数组中创建重复项
这是我的代码:
channel.send(`Welcome ${member.user.tag} Invited By ${invite.inviter.tag}`)
client.invites[invite.code] = invite.uses
const req = await InviteLogger.findOne({
ServerID: member.guild.id,
UserID: invite.inviter.id
})
if(!req) {
const doc = new InviteLogger({
ServerID: member.guild.id,
UserID: invite.inviter.id
});
await doc.save();
};
const doc = await InviteLogger.findOneAndUpdate({ServerID: member.guild.id, UserID: invite.inviter.id},{ $inc: { Joins: 1 } }, {new: true});
if(req.Invited === member.user.id) {
return;
}
const doc1 = await InviteLogger.findOneAndUpdate({ServerID: member.guild.id, UserID: invite.inviter.id},{ $push: { Invited: member.user.id } }, {new: true});
还有一个关于模式外观的屏幕截图:
解决方案
如果您不想member.user.id
被重复,请使用以下内容:
if(member.user.id.includes(req.Invited)) return;
这将检查是否member.user.id
是数组中的元素之一。并删除这部分代码:
if(req.Invited === member.user.id) {
return;
}
这段代码什么都不做,因为它检查整个数组是否等于member.user.id
,而您要做的只是检查它是否是数组的一部分。
推荐阅读
- google-colaboratory - 如何在谷歌 Colab 中渲染 OpenAI 健身房?
- javascript - 找不到 Javascript 错误
- mongodb - MongoDB中的复合索引效率不清楚
- c++ - 如果构造函数不采用任何输入参数,则使用显式构造函数?
- python - hybrid_property 在 if/else 中引发 TypeError
- postgresql - Postgres 应用程序:配置设置
- javascript - 如何在列表和项目之间导航?
- python - for循环在python中包含或排除
- java - NoSuchElementException 扫描程序未等待
- android - 从 recyclerview 打开一个片段(这是一个片段)