I've just looked for relevance in shard key order when querying but haven't found anything. LMK if I'm wrong, but AFAIK order of keys is irrelevant.

Also, in JS console look at the following scenario:
```
mongos> db.MessageThreads2.update({_id: 'testlotar', fu: 1}, {$set: {test:1}}, true)
can't upsert something without full valid shard key : { _id: "testlotar", fu: 1.0 }
mongos> db.MessageThreads2.update({_id: 'testlotar', fu: 1, tId:1}, {$set: {test:1}}, true)
mongos> db.MessageThreads2.findOne({_id : 'testlotar'})
{ "_id" : "testlotar", "fu" : 1, "tId" : 1, "test" : 1 }
mongos> db.MessageThreads2.remove({_id: 'testlotar'})
mongos> db.MessageThreads2.findOne({_id : 'testlotar'})
null
mongos> db.MessageThreads2.update({_id: 'testlotar', tId:1, fu:1}, {$set: {test:1}}, true)
mongos> db.MessageThreads2.findOne({_id : 'testlotar'})
{ "_id" : "testlotar", "fu" : 1, "tId" : 1, "test" : 1 }
mongos> db.MessageThreads2.remove({_id: 'testlotar'})
mongos> db.MessageThreads2.findOne({_id : 'testlotar'})
null
```
and the shard key is following:
```
mongos> db.MessageThreads2.getIndexKeys()
[
	{
		"tId" : 1,
		"fu" : 1
	}
```
As I wrote, if I'm wrong LMK and will reconsider, but otherwise don't see a point in it.