mongoDB搜索文本错误

时间:2017-08-13 04:29:45

标签: mongodb

使用搜索索引时出错,我使用的是v3.4。

> 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"});


{
        "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"
}

1 个答案:

答案 0 :(得分:1)

您可能已经为string字段编制索引。要检查以前的索引,请运行此命令

db.test2.getIndexes();

如果存在,则可以通过该指令删除该索引

db.test2.dropIndex( { "string": 1 } );

之后,您可以再次为string字段

创建索引
db.test2.createIndex( { string: "text" } );

N.B:字段名称不应使用变量类型名称string(尽管您未使用String),Int