【发布时间】:2015-09-25 23:57:41
【问题描述】:
关于以下 mongodb 查询的快速问题:
var queryParams = {
$or: [
{'stats.created_by': userId},
{'user_list.user_id': userId},
{'invite_list.user_id': userId},
{'invite_list.email': userEmail}
],
deleted: false
};
这个查询被赋予一个 ItemModel.find(queryParams); - 我想在这里了解表扫描的影响?我的理解是它会根据删除的属性进行全面扫描,然后过滤 $or 子句。
好的,我运行了以下说明,所有项目都被扫描并带有已删除的索引。
db.items.find({$or: [
{'stats.created_by': '559cd76338e42c533a83b8a7'},
{'user_list.user_id': '559cd76338e42c533a83b8a7'},
{'invite_list.user_id': '559cd76338e42c533a83b8a7'},
{'invite_list.email': 'some@something.com'}
],
deleted: false}).explain();
我可以在这里做些改进吗?
谢谢。
J
【问题讨论】:
-
您本可以将询问此问题的时间用于检查
explain()输出。
标签: mongodb indexing mongoose database