MongooseJS 无法禁用字段独有

Posted

技术标签:

【中文标题】MongooseJS 无法禁用字段独有【英文标题】:MongooseJS cant disable unique to field 【发布时间】:2014-07-04 22:19:15 【问题描述】:

这是我的 mongoosejs 架构。我将 name unique 设置为 false,但这就是我得到的:MongoError: insertDocument :: 由 :: 11000 E11000 重复键错误索引:testdb1.images.$name_1 dup key: : "aaa" 强>

imageSchema = new Schema(
    url: 
        type: String,
        unique: true,
        required: true
    ,

    category: 
        type: String,
        required: true
    ,

    vote: 
        type: Number,
        required: true
    ,

    name: 
        type: String,
        unique: false,
        required: true
    ,

    voteArray: [],
    favorite: false,
    tags: []

);

任何想法如何解决这个问题?建议?

【问题讨论】:

【参考方案1】:

Mongoose 不会修改现有索引,因此您需要将该索引删除到 MongoDB shell 中,然后让 Mongoose 使用架构中的定义重新创建它:

> db.images.dropIndex('name_1');

【讨论】:

【参考方案2】:

转到数据库(MongoDB)--> 集合--> Your_Table --> 索引--> 右键单击​​唯一字段--> 退出索引--> 取消选中唯一字段--> 保存

【讨论】:

【参考方案3】:

MongoDB 指南针

如果您使用的是 MongoDB Compass,那么您可以选择您的文档,然后单击 Indexes 并删除您要删除的索引。

【讨论】:

以上是关于MongooseJS 无法禁用字段独有的主要内容,如果未能解决你的问题,请参考以下文章

MongooseJS 使用多个目标字段填充

如何使用 mongoosejs 用鉴别器覆盖父模式字段

无法使用 mongoosejs 填充

Mongoosejs:findById 比 findOne 快吗?

猫鼬没有加入两个系列

无法使用 mongoosejs 返回子文档的 _id