I use
db.runCommand( { shardcollection : "test.users" , key : {_id:1, email : 1 ,address:1}
to shard
but only _id can be used to route queries, query only on email and address can not be targeted the server search all the mongod processes.
so I think is there any possibility to specify more shard keys not used to shard but work as "global indexes", used to route queries
this will increase the shard performance greatly