编译后无法覆盖模型

Cannot override model once compiled

我正在设置一个将 server/user 信息保存在 MongoDB 数据库中的 discord 机器人。我在数据库模型中使用 discord 服务器 ID 作为集合名称。当我尝试使用相同的集合名称(相同的服务器 ID)将数据保存到集合中时,我收到错误消息,指出模型一旦编译就无法被覆盖。如何解决此问题并仍然使用服务器 ID 作为集合名称?

我已尝试移动代码以使其不出现此错误。我想在另一个文件中使用它,但我不知道如何将服务器 ID 发送到集合名称的文件中。

async function addUserFile(usr) {
  const userSchema = mongoose.Schema({
    userID: String,
    warnings: Array,
    moderations: Array,
    currency: String,
  })

  let userFile = mongoose.model(usr.guild.id, userSchema)

  let file = new userFile({
    _id: mongoose.Types.ObjectId(),
    userID: usr.id,
    warnings: {},
    modersations: {},
    currency: 0
  })

  file.save()
}

我想使用它们来自的服务器的 ID 将文档添加到集合中而不会出现错误,但我却收到了 UnhandledPromiseRejectionWarning: OverwriteModelError: Cannot overwrite model once compiled. 错误。

在保存或更新文档后使用 delete mongoose.connection.model[collectionName] 解决了这个问题。