我有一个看起来像这样的搜索功能:
此搜索的条件作为条件对象传递给MongoDB
'方法,例如:find()
{
designer: "Designer1".
store: "Store1",
category: "Category1",
name: "Keyword",
gender: "Mens",
price: {$gte: 50}
}
我只是在学习indexes
,MongoDB
所以请多多包涵。我知道我可以在每个单独的字段上创建一个索引,我也可以在几个字段上创建一个多索引。例如,对于一个索引,我可以这样做:
db.products.ensureIndex({designer: 1, store: 1, category: 1, name: 1, gender: 1, price: 1})
如果有人搜索,例如,一个类别,而不是设计师或商店,就会出现明显的问题,它不会被索引。
我目前正在使用$and
运算符查找这些术语,所以我的问题是:
如何创建一个索引以允许这种类型的灵活搜索?我是否必须为这 6 个术语的每个可能组合创建一个索引?或者,如果我$and
在搜索中使用它是否足以索引每个单独的术语并且我将获得最佳性能?