Mongo查询不断运行

时间:2018-11-29 17:05:22

标签: mongodb mongodb-query

出了点问题,我不明白为什么。我有一个曾经可以正常运行的脚本,但是突然停下来了。这基本上是对大型Mongo集合(600gb +)的mongo查询。

以下是查询:

db.action_traces.findOne( {"block_time": {"$lt": "2018-07-15T00:00:00.000Z"} } ).pretty()

最初我没有使用findOne,但我将结果限制为一个,以防万一我可以帮忙,但结果是相同的:什么也没发生。

如果我只是运行一个find查询,那会很好。

mongodb日志中没有显示任何内容,并且syslog中也没有任何显示内容。

Mongo显然有问题,因为htop向我展示了这一点:

Htop mongodb

mongo进程在波动,但大多数情况下会占用一个CPU线程100%。

有人可以帮忙吗?

在此先感谢

1 个答案:

答案 0 :(得分:1)

听起来像是在整个收藏集中拖拉-您是否在block_time上添加了索引?

.find()返回一个光标,该光标指向第一组匹配的文档,如果未指定排序顺序,则默认为默认顺序(自然顺序)。

.findOne()返回单个文档-附带条件是,如果您的查询匹配多个文档,则它将使用其“自然顺序”并返回第一个文档(这意味着它需要首先查找所有匹配项)。

我猜您的馆藏需要在该字段上建立索引-这意味着它可以在不进行全面扫描的情况下查找结果。