mongodb 使用Mongo shell无法创建唯一索引

vfwfrxfs  于 2023-01-08  发布在  Go
关注(0)|答案(1)|浏览(159)

我创建了一个小的mongodb数据库,我想创建一个唯一的用户名列。所以我使用createIndex()命令为该列创建了一个具有UNIQUE属性的索引。
我尝试在Mongosh中使用以下命令创建唯一索引。

db.users.createIndex({'username':'text'},{unqiue:true,dropDups: true})

为了检查当前索引,我使用了getIndex()命令。下面是该命令的输出。

newdb> db.users.getIndexes()
[
  { v: 2, key: { _id: 1 }, name: '_id_' },
  {
    v: 2,
    key: { _fts: 'text', _ftsx: 1 },
    name: 'username_text',
    weights: { username: 1 },
    default_language: 'english',
    language_override: 'language',
    textIndexVersion: 3
  }
]

现在索引已经创建,所以为了确认,我在MongoDB Compass中检查了相同的内容。但是我无法看到UNIQUE属性被分配给我新创建的索引。请参考下面的屏幕截图。MongoDB Screenshot
我尝试删除旧索引,因为它没有显示UNIQUE属性,并使用MongoDB Compass GUI再次创建,现在我可以看到UNIQUE属性分配给索引。MongoDB Screentshot2以下是Mongosh中getIndex()命令的输出。

newdb> db.users.getIndexes()
[
  { v: 2, key: { _id: 1 }, name: '_id_' },
  {
    v: 2,
    key: { _fts: 'text', _ftsx: 1 },
    name: 'username_text',
    unique: true,
    sparse: false,
    weights: { username: 1 },
    default_language: 'english',
    language_override: 'language',
    textIndexVersion: 3
  }
]

我试着搜索类似的主题,但没有找到任何相关的内容。是否有什么我遗漏或做错了?

qacovj5a

qacovj5a1#

将属性unique拼错为unqiue,导致了此问题。我用正确的拼写再次尝试,现在可以正常工作了。很抱歉问了一个愚蠢的问题

相关问题