首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >{ id: 1,title:“text”}和{title:"text",id: 1} MongoDB索引之间的区别

{ id: 1,title:“text”}和{title:"text",id: 1} MongoDB索引之间的区别
EN

Stack Overflow用户
提问于 2020-10-12 08:39:59
回答 2查看 163关注 0票数 0

我正在设计一个User文档存储Skill ids的模式。Skill文档如下所示

代码语言:javascript
复制
Skill = {
  id: ObjectId
  title: String
  description: String
}

User = {
  id: ObjectId
  skills: [ObjectId]
}

在前端,用户可以通过搜索Skill的标题来添加它。因此,我用{id: 1, title: "text"}编制了技能集合索引。当我们将文本索引和数字索引结合起来时,我想知道排序是否重要。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-12 12:54:34

是的,这有很大的不同,关于复合文本索引的文档

  • 如果复合文本索引包括文本索引键前面的键,则要执行$text搜索,查询谓词必须在前面的键上包含相等匹配条件。

这意味着,如果您执行{id: 1, title: 'text'},您只能在标题上使用文本索引,如果还将搜索限制在单个id中。

如果您执行{title: 'text', id: 1},您将能够自己搜索文本标题,或者进一步受限于id,或者检索文本搜索结果的匹配id。

您确定需要索引中的id列吗?为什么不只是文本索引呢?

票数 0
EN

Stack Overflow用户

发布于 2020-10-12 11:49:46

是的,这确实很重要。直接从文档

复合索引中列出的字段的顺序非常重要。索引将包含对文档的引用,这些文档首先根据项目字段的值排序,而在项目字段的每个值中,则根据库存字段的值进行排序。有关更多信息,请参见排序顺序。

在当前结构中,如果只查询title字段而不对id字段进行限制(没有查询),则无法利用索引。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64314392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档