运行MongoDB,我正在尝试将优先级为(d)的三列键查找(a,b,c)排队.我有一个查询(pymongo语法):
collection.find({'a':'foo','b':'bar','c':'baz'}, sort = [('d', -1)] )
在运行复合索引(a 1,b 1,c 1,d-1)的情况下,explain显示全表扫描和BasicCursor.
在d上有一个索引时,说明显示仅使用d索引.
对于大表,我真正想要的是使用复合索引.我该如何进行这项工作?
INDEX_INFORMATION:
{u’id’:{u’key’:[(u’_id’,1)],u’v’:1},
u’color_1_level_1_in_progress_1_Ranking_-1’:{u’key’:[(u’color’,
1),
(u’level’,1),
(u’in_progress’,1),
(u’Ranking’,-1)],
u’v’:1}}
EXPLAIN ON A FIND+SORT QUERY
db.coll.find({'level' : {'$in' : [0,1,2]}, 'in_progress' : 0, 'color' : {'$in' : ['Red', 'Blue', 'Green]} }, sort = [('Ranking', -1)] ).explain()
OUTPUT ON EXPLAIN
Operati