【问题标题】:OverwriteModelError MongooseOverwriteModelError 猫鼬
【发布时间】:2020-04-24 09:59:03
【问题描述】:

在使用 Mongoose 进行查询时,我似乎收到了 OverwriteModelError

我正在创建一个 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);
})

任何帮助或建议将不胜感激。

【问题讨论】:

    标签: javascript mongodb mongoose discord.js


    【解决方案1】:

    每次您尝试更新用户时,您都会调用const findUser = new mongoose.Schema({ discordUsername: String });,这是不允许的。

    updateUser 方法之外设置Schema,它不会失败。

    const mongoose = require('mongoose');
    const findUser = new mongoose.Schema({ discordUsername: String });
    

    【讨论】:

      猜你喜欢
      • 2019-09-16
      • 2017-10-08
      • 2012-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-25
      • 2017-11-30
      相关资源
      最近更新 更多