问题标签 [mongodb-indexes]

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 投票
1 回答
346 浏览

mongodb - MongoDB索引有效性评估最佳实践

我们想评估我们的索引在基于 MongoDB 的 REST 服务设置中的有效性。想法是用合成数据集(例如 10,000,000 个文档)填充集合,然后运行负载注入器进程执行随机 REST 操作(每个操作都涉及 MongoDB 层的查询)以评估正在使用的索引和有关它们的统计信息(例如每个索引命中率)。

我们考虑过使用explain()命令或indexStats。然而,关于 explain(),它有两个问题:1) 它只允许评估单个查询的有效性,2) 在负载注入器进程与 REST 服务交互的“黑盒”环境中使用起来很困难在 MongoDB 上,但不是 MonoDB 本身。关于 indexStats,据我了解,它显示有关“磁盘上”的索引结构的信息,而不是有关索引使用情况的信息。

因此,哪种方法是进行这种测试的最佳方式?任何程序描述或有关该主题的信息的 URL 都非常受欢迎。

0 投票
1 回答
394 浏览

mongodb - Mongo:$exists 字段的索引

我有以下猫鼬模式:

对于某些 dataObjects,eventCount 已定义且为正数,对于其他 dataObjects,eventCount 未定义。我想设计一个索引,使这样的查询尽可能快:

做这个的最好方式是什么?

这是我能想到的最佳解决方案,但我很想知道是否有人有更好的解决方案:

将 isEventCount 布尔变量添加到 dataSchema。设置 mongoose 中间件,以便在使用以下逻辑将对象保存到 db 之前计算 isEventCount。

然后建立这样的索引

并像这样运行我的查询

这种方法有几个缺点。即:

  1. 我正在数据库中保存冗余信息。
  2. 我必须编写额外的中间件代码来实现这一点。
  3. 我必须修改数据库中的现有条目。

有人知道更好的解决方案或可以帮助解决此问题的库吗?

0 投票
1 回答
445 浏览

c# - MongoDB C# OfType() 索引行为

假设我对一个集合有这个查询:

并且这些特征通过以下方式索引(稀疏):

据我了解,C# 驱动程序在构建查询时使用类型信息DBFeatureDBPointFeature作为附加过滤器。

我想知道索引是否在类型查询之前应用,因此它将仅限于索引子集。

如果没有,它将首先获取特定类型的所有项目(这是一个比索引集大得多的集合),并且索引几乎没有意义。

在这种情况下 MongoDB 的行为是什么?

非常感谢!!

0 投票
1 回答
250 浏览

mongodb - 如果复合索引包含 2dsphere 索引,则索引前缀不起作用

MongoDB 版本:2.6.2

x我在and上创建了一个复合索引location,但是当我在 上查询时x,为什么它不起作用?

0 投票
2 回答
2344 浏览

mongodb - 如果有多个索引包含相同的字段,将使用哪个索引?

以 a 为例,find()它涉及一个字段,a并且b按顺序排列。例如,

我的集合索引数组中有两个键:

是否保证mongo 将使用第一个键,因为它更准确地匹配查询,还是随机选择两个键中的任何一个,因为它们都可以工作?

0 投票
1 回答
70 浏览

mongodb - 又一个 mongodb indexOnly

我今天早上的大部分时间都在重新阅读她的 MongoDB文档博客和其他答案,但我仍然错过了一些我希望对其他人来说非常明显的东西。

编辑:我已将文档的方案更改为没有子文档(元数据。*),并且仍然存在未覆盖索引的问题。我删除了现有索引并用新索引重新索引:

所以不是我有:

并给出这个查询:

未显示为被名为“byHostCurrent”的索引所覆盖:

MongoDB版本是:2.6.3。

0 投票
1 回答
667 浏览

mongodb - MongoDB 拒绝使用索引交集

我使用 MongoDB 2.6.4。

我的索引如下所示:

我的查询如下所示:

出于某种原因,它选择仅使用 1 个索引(非常慢:680 秒!!)

看起来它确实计算了复杂计划,但是决定不使用它,我不明白为什么。这是执行计划:

0 投票
2 回答
1166 浏览

mongodb - 为什么这个 $elemMatch 查询不使用我的索引?

我的查询:

我的索引:

.explain() 结果:

在此处输入图像描述

为什么没有索引?

0 投票
1 回答
62 浏览

mongodb-indexes - mongodb 2.6.3 使用错误的索引

我有一个如下查询。显然更好的索引是“platform_1_keyuserAccountID_1_weiboAccountID_1_postTime_1”,但是 mongodb 选择“weiboAccountID_1”,我做错了吗?



0 投票
1 回答
637 浏览

mongodb - MongoDB索引相同键的不同数据类型

假设我有三个文档,其中存在“B”字段。这三个都有 3 种不同的数据类型。Index BTREE 是如何存储的?并且将“B”作为索引键是有效的吗?

例子。