优化mongodb中的查询

时间:2016-04-06 10:15:38

标签: mongodb query-optimization mongodb-java

我正在使用mongodb优化我的查询。

在正常的sql查询中,有一个顺序,其中应用了where子句。对于例如select * from employees where department="dept1" and floor=2 and sex="male",首先应用department="dept1",然后应用floor=2,最后sex="male"

我想知道它是否会在mongodb中以类似的方式发生。 例如。 DbObject search = new BasicDbObject("department", "dept1").put("floor",2).put("sex", "male"); 这里将首先应用哪个匹配子句,或者实际上mongo以这种方式工作。

这个问题基本上源于我对SQL数据库的背景。

请帮忙。

1 个答案:

答案 0 :(得分:0)

如果没有索引,我们必须扫描整个集合(集合扫描)才能找到所需的文档。在您的情况下,如果您想申请订单[部门,楼层和性别],您应该创建此复合索引:

db.employees.createIndex( { "department": 1, "floor": 1, "sex" : 1 } )

作为文档:https://docs.mongodb.org/manual/core/index-compound/

  

db.products.createIndex({“item”:1,“stock”:1})

     

复合索引中字段的顺序非常重要。在里面   在前面的示例中,索引将包含对文档的引用   首先按项目字段的值排序,并在每个值的范围内排序   项目字段,按库存字段的值排序。

相关问题