考虑这是我的收藏结构
"hotel":{
"hotelType":"",
"hotelname":"",
"branchname":""
}
目前我有_id
的一个索引{
"hotelType" : 1,
"unique": false
}
我的查询就像
db.employee.find({"hotelname":"?", "branchname":"?", "hotelType":"?"});
注意:酒店可以有多个分支
我正在考虑添加复合索引
{
"hotelname" : 1,
"branchname" : 1
}
如果这有助于提高性能或加强查询,请告诉我
答案 0 :(得分:0)
您的查询对我来说很奇怪,为什么要在hotelname
之前过滤branchname
和_id
?
这是一种诽谤,因为你的_id
是独一无二的。如果你有,只需做一个这样的简单查询:
db.employee.find({"_id":"?"});
在MongoDB集合中,_id
字段是唯一的,并为所有文档创建。所以即使你把这样的(无用的)索引:
{
"_id" : 1,
"unique": false
}
它不会改变集合在此字段中已具有唯一索引的事实。
修改:看一下这个对话:Wonder: Is MongoDB _id unique by default?