【问题标题】:MongoDB Unique Index issue in array of subdocuments子文档数组中的 MongoDB 唯一索引问题
【发布时间】:2020-02-05 08:03:26
【问题描述】:

我有这样的文件:

{
   _id : ObjectID(),
   title: "",
   items: [
      {
         "itemId" : 1234678,
      }
   ]
}

itemId 是这样创建的唯一索引:

db.allItems.createIndex( { "items.itemId" : 1 }, { unique: true});

然后一切正常,直到我设置项目数组(不推一个),在这种情况下,唯一索引不起作用。更新操作中的以下数据(使用$set)不会引发错误并且可以正常工作,但不能。我的意思是它创建的子文档没有任何独特的错误

items: [
  {
    itemId: 1234678
  },
  {
    itemId: 1234678
  }
]

虽然我希望 MongoDB 会抛出 itemId 不是唯一的错误。

【问题讨论】:

    标签: arrays mongodb unique-index


    【解决方案1】:

    MongoDb 索引唯一性适用于文档,不适用于嵌套数组。

    如果您尝试插入新文档:

    items: [
      {
         "itemId" : 1234678,
      },
      ...
    ]
    

    MonogDB 将抛出 E11000 duplicate key error collection

    【讨论】:

    • 是和$set相关还是一般忽略?
    • @MostafaTalebi 它通常会忽略
    猜你喜欢
    • 1970-01-01
    • 2016-03-15
    • 2017-01-11
    • 2020-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-26
    相关资源
    最近更新 更多