I think it is required to check the returned item to be a valid cached item:

```php
if (isset($result['expires'])) {
    if (!($result['expires'] instanceof MongoDate)) {
        throw new Exception\RuntimeException(sprintf(
            "The found item _id '%s' for key '%s' is not a valid cache item'
            . ': the field 'expired' isn't an instance of MongoDate",
            (string)$result['_id'],
            $key
        ));
    }
}

if (!array_key_exists('value', $result)) {
    throw new Exception\RuntimeException(sprintf(
        "The found item _id '%s' for key '%s' is not a valid cache item'
        . ': missing the field 'value'",
        (string)$result['_id'],
        $key
    ));
}
```