简单但缓慢的mongodb查询

时间:2017-03-16 03:05:11

标签: mongodb

我想我错过了一些东西 - 我有一个大约2GB的集合,试图按特定值找到文档(显示为数字或字符串)

我在馆藏中有大约14K文件。

这是一个非常基本的查询:

db.e_69.find({
    "field_groups.fields_data" : 
    {
    "$elemMatch": {
        "field_id": "502",
        "value": {"$in": ["223384",223384]}
    }
}})

我使用mongoDB 3.2,具有两个副本集的小型AWS服务器。

我知道这不是太多信息 - 但是,由于我是新手,我不确定需要哪些信息,并乐意根据需要添加信息。对我来说,14K文档中的这样一个查询需要花费3秒钟,这对我来说很奇怪。

我错过了什么吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

按数字排序可以更快地运行,但是你有一个数组,所以它会减慢你的查询速度,因为它有两种类型。

我建议添加一个简单的布尔列,如果doc有“223384”,223384,则在添加新文档时,只需将此布尔列设置为true值即可。 然后您的查询将很简单并快速搜索。 我希望有所帮助。