node.js - Mongoose :无法在 `_id` 上为模型名称 "SchemaName"指定自定义索引,MongoDB 不允许覆盖默认的 `_id` 索引

标签 node.js mongodb mongoose

所以我只是尝试自定义 _id在像这样的 Mongoose 模式中:

const userSchema = new mongoose.Schema({
        _id: {
            type: String,
            required: true,
            unique: true
        },
        ...
        ...
})

并收到此消息:mongoose: Cannot specify a custom index on _id for model name "SchemaName", MongoDB does not allow overwriting the default _id index.
事情是,一切都很好。我可以插入数据并像往常一样选择它。我应该对这条消息做些什么吗?

最佳答案

我认为错误出现在您尝试定义 required:true 时和 unqiue:true , 如 _id已经有了这个,也就是说你不能有 _id即使 Mongoose 的条件不存在并且始终需要,也具有非唯一值。尝试删除这两个约束并只设置 type:String这个消息应该消失

关于node.js - Mongoose :无法在 `_id` 上为模型名称 "SchemaName"指定自定义索引,MongoDB 不允许覆盖默认的 `_id` 索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62244478/

相关文章:

javascript - 如何根据 mongodb 中的值对数组中的文档进行计数?

node.js - Mongoose 可选的最小长度验证器?

node.js - 仅根据移动应用程序的需求使用 websockets(通过 socket.io)的模式

windows - docker-compose 错误无法启动服务 mongo : driver failed programming external connectivity on endpoint

javascript - Node js回调函数

node.js - Mongoose : query on a field on an array of ref documents,

node.js - Mongodb - 映射关系 - 类型 Objectid

javascript - 如何从 BlobResult[] 获取 blob 名称?

javascript - 文件上传不适用于 Angular 和 Node.JS

node.js - 带 SSL 128 位的 HTTP 请求