查询查询中的多个索引字段

时间:2018-01-25 07:42:11

标签: java mongodb

考虑这是我的收藏结构

"hotel":{
    "hotelType":"",
    "hotelname":"",
    "branchname":""
}

目前我有_id

的一个索引
{
    "hotelType" : 1,
    "unique": false
}

我的查询就像

db.employee.find({"hotelname":"?", "branchname":"?", "hotelType":"?"});

注意:酒店可以有多个分支

我正在考虑添加复合索引

{
    "hotelname" : 1,
    "branchname" : 1
}

如果这有助于提高性能或加强查询,请告诉我

1 个答案:

答案 0 :(得分:0)

您的查询对我来说很奇怪,为什么要在hotelname之前过滤branchname_id? 这是一种诽谤,因为你的_id是独一无二的。如果你有,只需做一个这样的简单查询:

db.employee.find({"_id":"?"});

在MongoDB集合中,_id字段是唯一的,并为所有文档创建。所以即使你把这样的(无用的)索引:

{
    "_id" : 1,
    "unique": false
}

它不会改变集合在此字段中已具有唯一索引的事实。

修改:看一下这个对话:Wonder: Is MongoDB _id unique by default?