排序和过滤时查询速度慢

时间:2018-06-24 14:39:44

标签: mongodb

我正在使用3.6.5版的mongodb。我想对一个集合进行查询,然后根据日期对其进行排序。我正在研究一个(我认为是)非常大的数据集,目前该集合中的数据为195064301,并且还在不断增长。

执行过滤器或在单独的查询中进行排序

db.getCollection('logs').find({session: ObjectId("5af3baa173faa851f8b0090c")})
db.getCollection('logs').find({}).sort({date: 1})

返回的结果少于1秒,但是如果我尝试在这样的单个查询中完成结果

db.getCollection('logs').find({session: ObjectId("5af3baa173faa851f8b0090c")}).sort({date: 1})

现在大约需要5分钟才能返回数据。我当时以为这是索引问题,但据我所知,索引似乎很好

> db.logs.getIndexes();
[
    {
        "v" : 2,
        "key" : {
            "_id" : 1
        },
        "name" : "_id_",
        "ns" : "client1.logs"
    },
    {
        "v" : 2,
        "key" : {
            "session" : 1
        },
        "name" : "session_1",
        "ns" : "client1.logs",
        "background" : true
    },
    {
        "v" : 2,
        "key" : {
            "date" : 1
        },
        "name" : "date_1",
        "ns" : "client1.logs",
        "background" : true
    },
    {
        "v" : 2,
        "key" : {
            "user" : 1
        },
        "name" : "user_1",
        "ns" : "client1.logs",
        "background" : true
    }
]

我还是mongo的新手,我直接在控制台中尝试了那些请求,我也尝试使用reIndex()方法,但没有什么真正的帮助。

所以我希望对此有解决方案。

谢谢。

0 个答案:

没有答案