Проблемы с запросом MongoDB - PullRequest
1 голос
/ 12 октября 2011

Я занимаюсь разработкой API с использованием библиотек Codeigniter и Alex Bilbies oAuth2 и MongoDB. Мне нужно сделать запрос MongoDB, где я делаю запрос для документа с _id 1 и токен доступа равен нулю.

Пока у меня есть это, но оно не работает:

$exists_query = $this->CI->mongo_db->select('access_token')->where(array('_id' => $session_id, 'access_token' != NULL))->get('oauth_sessions');

Я тоже это пробовал:

$exists_query = $this->CI->mongo_db->select('access_token')->where(array('_id' => $session_id))->where_not_equal('access_token', NULL)->get('oauth_sessions');

Как мне изменить этот запрос на работу?

1 Ответ

0 голосов
/ 17 октября 2011

Это кажется странным. Разве вы не используете идентификаторы, которые предоставляет Монго ??

Если вам нужно, вы должны использовать специальную функцию 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');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...