我想我错过了一些东西 - 我有一个大约2GB的集合,试图按特定值找到文档(显示为数字或字符串)
我在馆藏中有大约14K文件。
这是一个非常基本的查询:
db.e_69.find({
"field_groups.fields_data" :
{
"$elemMatch": {
"field_id": "502",
"value": {"$in": ["223384",223384]}
}
}})
我使用mongoDB 3.2,具有两个副本集的小型AWS服务器。
我知道这不是太多信息 - 但是,由于我是新手,我不确定需要哪些信息,并乐意根据需要添加信息。对我来说,14K文档中的这样一个查询需要花费3秒钟,这对我来说很奇怪。
我错过了什么吗? 谢谢!
答案 0 :(得分:0)
按数字排序可以更快地运行,但是你有一个数组,所以它会减慢你的查询速度,因为它有两种类型。
我建议添加一个简单的布尔列,如果doc有“223384”,223384,则在添加新文档时,只需将此布尔列设置为true值即可。 然后您的查询将很简单并快速搜索。 我希望有所帮助。