问题标签 [compound-index]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
423 浏览

mongodb - MongoDB:读取索引而不是读取文档本身,减少 nscanned 对象

在下面的代码中,我查询日期并按名称排序(我不索引日期字段可能听起来很奇怪,但我这样做是为了避免在内存中排序,这就是我按名称索引的原因)。如果我正在运行解释,我会得到以下信息:

然后,如果我使用名称和日期创建复合索引,我会得到以下输出:

即使我的查询不包含索引或其前缀,在我看来,索引应该能够在第二种情况下直接从索引中读取日期字段,因此 nscannedObject 应该等于 n = 49。确实所有信息都已经在索引中扫描文档的数量应该等于返回结果的数量。看来这里不是这样。我错了还是我做错了什么?

0 投票
1 回答
970 浏览

mongodb - mongodb复合索引和单索引性能

考虑以下场景:

100% 的时间我的查询将在查询中包含a,有时也包含b

90% 的查询将是:

10% 将是

仅使用复合索引(如果有的话)来满足这一点会有什么缺点?,就像这样:

}

或者我是否会受益于添加仅满足查询的第二个索引

0 投票
1 回答
121 浏览

mongodb - Mongodb - 分页时使用复合索引提高性能

我是 mongodb 的新手,我需要有关使用复合索引提高查询性能的帮助。

我正在使用“_id”字段进行分页。询问:

style并且area可以是可选的,因此这些也是可能的。

这些查询是否可以使用此复合索引,还是我需要更多附加索引?

编辑

我不确定这些索引中的哪一个对查询有效。

款式数量:16

区域数量:50

id数:1000万

0 投票
1 回答
174 浏览

python - 使用 PyMongo 在 MongoDB 中查询复合 _id 的时间范围

我有一个集合,其中_ids 是时间和字符串的组合(是的,我知道这很糟糕,但是......当我到达时就是这样)。该集合中的一条记录如下所示:

基本上,我试图找出一个查询,它会给我记录 where _id.my_stringisFoo_id.my_timeis between time1andtime2

我可以$and用来构建查询dict复合的不同部分的查询_id吗?

这将返回 0 条记录:

这也是这样:

以防你没有注意到,当谈到 MongoDB 时,我是一个真正的新手。

先感谢您!

0 投票
1 回答
211 浏览

javascript - 带 lodash/下划线的复合索引

在处理来自数据库的数据时,我们经常会得到一些东西,由于数据库的限制,这些东西可以(唯一地)被复合索引索引。但是,indexBy似乎不适用于复合指数,或者是吗?

x给定一个包含具有a和属性的对象的数组b,我想要一个字典字典,其中包含 的所有对象,分别由和x索引。例如:ab

在这里拉小提琴

byABC现在看起来像这样:

这个小提琴演示了这个compoundexIndexBy功能。我的工作是徒劳的(因为Lo-Dash实际上确实支持复合指数),还是至少可以改进?

0 投票
2 回答
660 浏览

mongodb - MongoDB多重复合索引会影响性能吗?

为各种类型的查询创建多个复合索引是否更好? 或者
以支持多个查询的方式使用单个复合索引是否更好(这很难分析和构造,因为有很多查询)。
我的基本问题是“创建多个复合索引会减慢读/写操作吗?

请建议我一个解决方案。

0 投票
1 回答
1454 浏览

mongodb - 如何在两个键值范围内查找具有查询值的文档

我正在分析文本。这些文本有注释(例如“章节”、“风景”……)。这些注释在我的 MongoDB 集合annotations中,例如

挑战 1:对于文本中的给定位置,我想找到所有注释。例如查询字符1234应该告诉我,

  • 它在第一章内
  • 它发生在城堡里

挑战 2:我也喜欢查询范围。例如查询字符形式9800 to 10101应该告诉我,它触及chapter 1chapter 2并且scenery forest.

挑战 3:与挑战 2类似我只想匹配那些完全被查询范围覆盖的注释。例如查询字符形式9800 to 30000应该只返回文档chapter 2

对于挑战 1,我尝试简单地使用$ltand $gt。例如:

但我意识到,start即使我有 and 的复合索引,也只使用start键的索引stop。有没有办法为我提到的三个问题创建更充分的索引?

我很快想到了地理空间索引,但我还没有使用它们。我也只需要它的一维版本。

0 投票
1 回答
1471 浏览

performance - MongoDB 复合索引与单字段索引在空间消耗方面

根据这篇文章,复合索引的维度更大(我在文档上找不到太多信息,所以如果你能指出我那里,我将不胜感激)。

假设我必须通过一系列地址来搜索整个地址(我们可以假设我将始终在集合和查询中拥有所有可用的字段),例如

我的问题是:复合索引会有多大?如果复合索引更大,那么单个字段是否会更好地将所有值的串联哈希添加到所有对象,向哈希字段添加单个索引并按其搜索(尽管听起来不像好习惯)?

0 投票
2 回答
644 浏览

postgresql - 具有三个键的复合索引,如果我查询跳过中间一个会发​​生什么?

使用 PostgreSQL,我想在三列上使用复合索引A, B, CBcreated_at日期时间,有时我可能会在没有B.

如果我复合索引 on(A, B, C)但随后使用Aand条件进行查询C,但不是,会发生什么情况B?(也就是说,AC想要它一直持续,而不仅仅是某个特定的时间范围?)

Postgres 是否足够聪明,仍然可以使用(A, B, C)复合索引但只是跳过 B?

0 投票
2 回答
200 浏览

mongodb - Mongodb唯一复合索引不尊重日期

我在 mongodb 中遇到了唯一复合索引的问题。代码说得最好(在 mongo shell 中):

我希望 doc2 可以正常插入,因为即使它的 _id 为 1,它的日期也不同,但脚本会返回此错误:

当我对集合执行 find() 时,实际上我只看到:

为什么这不起作用?