我有一个 mongodb 集合,“功能”,有 3 个字段:名称、活动、重量。我将按权重降序对特征进行排序:
db.features.find({active:true},{name:1, weight:1}).sort({weight:-1})
为了优化,我为它创建索引:
db.features.ensureIndex({'active': 1, 'weight': -1})
explain()
我可以看到它在查询中使用时效果很好。
但是,当我通过权重升序查询它时,我想我刚刚创建的索引将不起作用,我需要创建另一个权重升序索引。询问:
db.features.find({active:true},{name:1, weight:1}).sort({weight:1}).explain()
当我使用 explain() 显示索引如何工作时,我发现它打印出来:
"cursor" : "BtreeCursor active_1_weight_-1 reverse",
索引反向是否意味着查询已被索引优化?
一般来说,如果我将按重量在某些情况下升序和在其他情况下降序对它进行排序,我是否需要创建 2 个索引,例如按重量升序和按重量降序?