They getKey of the MixedCollection is just an injected function which returns this.internalId

So the key is how the internalId of the Record is set.

Look for this code in the reader:"

    extractData : function(root) {
        var me = this,
            records = [],
            Model   = me.model,
            length  = root.length,
            clientIdProp = Model.prototype.clientIdProperty,
            fields = me.getFields(),
            fieldLength = fields.length,
            convertedValue, convertedValues, field, name, node, id, record, i, j, value;
        if (!root.length && Ext.isObject(root)) {
            root = [root];
            length = 1;

        for (i = 0; i < length; i++) {
            node = root[i];
            id = me.getId(node);
            // Create a record with an empty data object.
            // Populate that data object by extracting and converting field values from raw data
            record = new Model(undefined, id, node, convertedValues = {});
And see if you can step into there in the Readers you are testing.