问题标签 [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 回答
1709 浏览

mongodb - 带有“字段”的查询索引:{$not: {$elemmatch: {...}}?

为什么在搜索此类文档时此查询不使用此索引?

我的查询:

我的索引:

我的文件:

0 投票
1 回答
290 浏览

mongodb - Pymongo collection.find_and_modify,指定要使用的索引?$提示?

我的 find_and_modify 查询使用了错误的索引。

有没有办法使用 PyMongo 提示正确的索引(按名称或其他方式)?

在任何文档中似乎都没有提到这一点......

0 投票
0 回答
149 浏览

mongodb - 用于电子邮件收集的 MongoDB 分片键

我正在使用 MongoDB 2.6.1

我有一个按项目存储电子邮件的集合。文件如下(为了便于阅读,没有包含“原始电子邮件文本”键):

在选择分片键时,我有以下想法:

  1. 建立一个复合索引 { Project_Id, _id } 因为Project_Id具有低基数但_id具有高基数
  2. ' Date ' / ' Unique_Id '上的散列索引,它们都是时间戳
  3. ' From ' 字段上的散列索引,但它的基数取决于否。参与项目的人
  4. ' To ' 和 ' CC ' 是多值键,而 ' Subject ' 具有很高的随机性,所以不确定这些键是否可以使用
  5. 虽然未在输出中列出,但“ Raw_Text ”将被不同的应用程序广泛阅读,但我不确定是否应该构建索引,甚至是否应该在此键的分片中使用!

在这种情况下,最佳分片键是什么?

0 投票
1 回答
1956 浏览

java - 使用java在mongodb中创建一个具有多个字段的索引

我是新手MongoDB。默认情况下,集合中mongodb有字段索引。_id我需要使用 Java 在另外 2 个字段上创建索引。

当我使用 db.collection_name.getIndexes() 在 mongodb 中查询时

我不确定上述是否正确。有人可以确认吗?如果不正确,我该如何纠正?

添加到上面,为了检索,我正在做这样的事情:

现在,为了像上面那样快速检索,我应该在 field1、field2 和 field3 上分别创建索引吗?或所有 3 个字段的复合索引?

0 投票
1 回答
1173 浏览

mongodb - mongodb后台TTL不删除文档

我在 Mongo 2.4.10 上使用 TTL 索引,但它不再起作用了。例如,在一个集合中,我将其设置为 5 天(432000 秒),正如我们在 db.collectionName.getIndexes() 中看到的那样:

但是一个 findOne() 向我显示了一个比预期更旧的文档:

创建 TTL 索引的 java 代码如下:

直到最近,一切似乎都运行良好:我们之前在生产中没有注意到它。这发生在我所有的数据库和所有相关的集合上。

怎么了 ?


编辑

我检查了我的服务器配置,启用了 TTL 监视器:

0 投票
1 回答
118 浏览

mongodb - 提高 mongo 上的 geoIndex 性能

我有下一个收集样本:

我插入了 10.000 行来评估架构性能

结果是下一个:

我尝试创建一个具有相同结果的“2d”索引。

总结我认为查询正在扫描太多行,我做错了什么?也许是模式定义?

谢谢!!

0 投票
1 回答
148 浏览

mongodb - mongodb快速标签查询

我有一个非常大的集合(超过 800k),我需要实现一个基于标签的自动完成(仅基于单词开头)功能的查询。我的文件如下所示:

例如,如果我的查询将针对所有以“ab”开头并具有“somefield”即“some value”的标签,则结果将是“abc tag1”、“abc tag3”(仅名称)。我更关心查询的速度,而不是插入和更新的速度。

我假设聚合框架是正确的方法,但是对于非常快速的查询来说,最好的管道和索引是什么?

这些文档不是“标签”文档,它们是代表客户端对象的文档,它们包含更多数据字段,为简单起见,我省略了,每个客户端都有几个标签和另一个字段(我更改了它的名称,所以它不会与标签混淆大批 )。我需要获得一组客户拥有的所有标签不重复的集合。

0 投票
1 回答
1243 浏览

node.js - 唯一和稀疏模式级索引 MongoDB 和 Mongoose

我正在尝试使用 Mongoose 在 MongoDB 中唯一且稀疏的模式的两个字段上创建索引,如下所示:

然后在 User 模式中的数组中使用,如下所示:

但是,当尝试在没有该array字段的情况下保存多个用户时,重复字段会引发错误。Mocha 中的错误类似于:array.event_id_1 dup key {null, null}. 会抛出此错误的代码段示例如下:

这是我使 ArraySchema 的字段唯一且稀疏的原因:如果指定了array字段,我不希望数组包含重复的对象;但是,该array字段不是必需的,因此会有很多用户拥有null该字段。显然我不能使用字段级索引,因为有多个字段需要索引(arrayType1、、、arrayType2arrayType3

0 投票
6 回答
94580 浏览

mongodb - 溢出排序阶段缓冲数据使用量超过内部限制

使用代码:

计数打印2043484,它打印all_reviews[0]

但是,在打印时all_reviews[2000000],出现错误:

pymongo.errors.OperationFailure:数据库错误:运行器错误:溢出排序阶段缓冲数据使用量 33554495 字节超出内部限制 33554432 字节

我该如何处理?

0 投票
1 回答
2744 浏览

mongodb - MongoDB 索引和投影

我有几个关于 MongoDB 的问题:

(1) 索引是否有助于投影?

(2) 我已经为一个集合分配了许多索引,并尝试使用排序运行查找,然后使用,它在排序字段上explain显示索引。BtreeCursor

难道是其他索引在查询部分有所帮助,explain只是没有显示它,因为它只显示了帮助查找的最后一个索引?

还是explain应该显示所有有助于查询、排序等的索引?

谢谢。