【问题标题】:MongoDB - 2 Unique keys in Single Schema not allowed?MongoDB - 不允许单一模式中的 2 个唯一键?
【发布时间】:2020-06-28 12:02:06
【问题描述】:

尝试在猫鼬中这样做:

const blogPost = new Schema({
  title: { type: String, unique: true },
  slug: { type: String, unique: true },
  //...
});

但是,我收到一个错误:

MongoError: E11000 重复键错误集合:blog.articles 索引:slug_1 复制键:{ : null }

这是不允许的吗?我只是想确保没有人两次创建 slug,也没有人两次使用相同的标题。

【问题讨论】:

    标签: javascript node.js mongodb mongoose


    【解决方案1】:

    实际上,您正在使用null 值创建slug,并且在slug 字段中有多个带有null 的文档时出错。

    使用sparse 索引来消除null 值。

    const blogPost = new Schema({
      title: { type: String, unique: true, sparse: true },
      slug: { type: String, unique: true, sparse: true },
      //...
    });
    

    【讨论】:

    • 哦,这可能是因为我在我的数据库中保存了一些根本没有这个值的博文之后,将 slug 值添加到了架构中?
    • @R.Kohlisch 删除所有文档并重试-:)
    猜你喜欢
    • 2021-06-01
    • 2016-04-19
    • 2012-03-14
    • 2019-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    相关资源
    最近更新 更多