The KeyPattern of a particular shard can be fetched using the following call.
ScopedCollectionMetadata collMetada; KeyPattern shardKeyPattern(collMetadata->getKeyPattern());
Hence, it is unnecessary that the split chunk command must take in a BSONObj called keyPatternObj, as in the following code block.
BSONObj keyPatternObj; { BSONElement keyPatternElem; auto keyPatternStatus = bsonExtractTypedField(cmdObj, "keyPattern", Object, &keyPatternElem); if (!keyPatternStatus.isOK()) { errmsg = "need to specify the key pattern the collection is sharded over"; return false; } keyPatternObj = keyPatternElem.Obj(); }
This keyPatternObj parameter can most likely be removed completely from the split chunk command.