在MongoDB中为这样一个集合创建的最佳索引是什么



我有一个包含以下文档的集合:

{
"_id":{
"$oid":"60c5316cbc885e00c6e5abeb"
},
"name":"<name>",
"addedAt":{
"date":{
"$date":"2021-06-12T22:13:00.316Z"
},
"timestamp":1623535980.316648
},
"lastUsed":{
"date":{
"$date":"2021-06-22T14:17:23.339Z"
},
"timestamp":1624371443.339323
},
"connStr":"http://<user>:<pwd>@<host>:<port>",
"resetIpUri":"http://<host>:<port>/api/changeIP?apiToken=<token>",
"lastResetIP":1623535980.316648
}

还有非常简单的查询:

db.collection.find({connStr: <connStr>})
db.collection.find({}).sort({"lastUsed.timestamp": 1})

但我不太确定是需要为字段conStr使用文本索引,还是使用常规索引?我无法理解文本索引是如何工作的,当我有任务根据文档的值查找文档时,我是否总是需要使用它们?如果是,我应该对整数字段还是浮点字段使用文本索引?

文本索引和常规索引完全不同,应该在完全不同的场景下使用。

如果:,则转到正常索引

您将匹配键的确切字符串值,或者对存储的字符串值使用Regex操作。

您正在寻找的是正常指数。

如果:,则转到文本索引

为了便于搜索,您希望对键的值进行词干处理。例如,词根like的词干是:likeslikedlikelyliking等。所有这些都是词根like的词干。

如果你想搜索一个键值,比如教科书名称或描述,你可以使用text索引,并对该键执行文本搜索,这将对所有单词执行词干搜索。

注意:我不是MongoDB文本索引专家,只是对它有一个模糊的概念。欢迎任何更正和编辑。

相关内容

  • 没有找到相关文章

最新更新