Это кажется странным. Разве вы не используете идентификаторы, которые предоставляет Монго ??
Если вам нужно, вы должны использовать специальную функцию mongoid, которая преобразует необработанную строку в идентификатор Монго.Если вы не используете монгоид по умолчанию ... чем вы действительно должны!
Кроме того, почему вы должны устанавливать нули ??Mongo очень специфичен для структуры, если поле не используется, вам не нужно устанавливать для него нулевое значение ... просто не включайте это поле ... это не mysql, где нужно хранить нулевые значения ... каждая строка ву mongo db могут быть разные столбцы ... таким образом, когда вы запрашиваете db, вы можете использовать нативный метод в mongo для проверки наличия поляУ вас не будет этих проблем
Ваш запрос должен выглядеть примерно так:
$this->CI->mongo_db->select('access_token')->where(array( '_id' => MongoId($session_id), exists => array('access_token' => -1)))->get('oauth_sessions');