javascript - OverwriteModelError Mongoose
问题描述
我似乎OverwriteModelError
在使用 Mongoose 进行查询时遇到了问题。
我正在创建一个 Discord Bot,它会在我的论坛上自动更新玩家标题,但是,当 Discord 玩家角色更改时,它会将其记录到控制台,但如果相同的玩家或不同的玩家随后被更改,则会引发此错误
https://gyazo.com/2af4c0a967da3cf16b8157f8ca7abcbd。
这是在我的 forumsUpdate.js 中执行的代码
const Discord = require("discord.js");
const superagent = require("superagent");
const errors = require("../utils/errors.js");
const api = require("../utils/api.js");
const mongoose = require('mongoose');
module.exports = {
updateUser: async (updateUserTag) => {
try {
const findUser = new mongoose.Schema({ discordUsername: String });
const User = mongoose.model('players', findUser);
const query = await User.find({ discordUsername: updateUserTag }).select('forums -_id');
query instanceof mongoose.Query;
const docs = await query;
console.log(docs)
} catch (ex) {
return console.log(ex)
}
}
};
在我的 index.js 中调用了该函数
bot.on('guildMemberUpdate', async (oldMember, newMember) => {
let updateUserID = (await bot.fetchUser(newMember));
let updateUserTag = updateUserID.tag;
forumsTitleUpdate.updateUser(updateUserTag);
})
任何帮助或建议将不胜感激。
解决方案
每次您尝试更新用户时,const findUser = new mongoose.Schema({ discordUsername: String });
都会对不允许的调用进行编码。
设置Schema
外部updateUser
方法,它不会失败。
const mongoose = require('mongoose');
const findUser = new mongoose.Schema({ discordUsername: String });
推荐阅读
- docker - Docker 容器在生产服务器上失败
- maven - Maven 无法从中央存储库(或显然是本地存储库)访问/传输
- sql - SQL Server 在插入时使用触发器删除行
- java - Java ServerSocket OutputStream 不刷新
- gcc - 尽管存在 -nostdlib,为什么 libc 依赖
- python - 像一个基本的计算器我怎么能循环这个
- amazon-web-services - 显示原始 ec2 域的 Google Oauth 屏幕。如何显示我添加的自定义域?
- python-3.x - /admin/auth/user/11/delete/ FOREIGN KEY 约束处的 IntegrityError 失败
- swift - 如何在 safari 中打开 url 而不是在 Ios 中打开其已安装的应用程序?
- django - 当我尝试登录时,Django 'User' 对象没有属性'profile'