我创建了一个小的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
}
]
我试着搜索类似的主题,但没有找到任何相关的内容。是否有什么我遗漏或做错了?
1条答案
按热度按时间qacovj5a1#
将属性
unique
拼错为unqiue
,导致了此问题。我用正确的拼写再次尝试,现在可以正常工作了。很抱歉问了一个愚蠢的问题