> db.test2.insert({string:"aa bb cc"});
WriteResult({ "nInserted" : 1 })
> db.test2.insert({string:"aa 88 99"});
WriteResult({ "nInserted" : 1 })
> db.test2.ensureIndex({'string':"text"});
设置ensureIndex后出现错误:
{
"ok" : 0,
"errmsg" : "Index: { v: 2, key: { _fts: \"text\", _ftsx: 1 }, name: \"string_text\", ns: \"test2.test2\", weights: { string: 1 }, default_language: \"english\", language_override: \"language\", textIndexVersion: 3 } already exists with different options: { v: 2, key: { _fts: \"text\", _ftsx: 1 }, name: \"post_text_text\", ns: \"test2.test2\", weights: { post_text: 1 }, default_language: \"english\", language_override: \"language\", textIndexVersion: 3 }",
"code" : 85,
"codeName" : "IndexOptionsConflict"
}
首先在
v3.4
版本这个方法ensureIndex()
改名了。现在的别名叫createIndex()
。 文档其次,这个方法的用法是
后面跟
1
或者-1
代表排序方式,还可以是text
是全文索引,还可以是地理位置索引2d
或2dphere
。(根据 @Mongoing中文社区 的回答做一下补充)中文文档
英文文档
上面的意思应该是你已经设置过了,索引已经存在了。冲突了。