2011-10-12 4 views
1

Codeigniter와 Alex Bilbies oAuth2 및 MongoDB 라이브러리를 사용하여 API를 개발 중입니다. _id가 1이고 액세스 토큰이 null 인 문서에 대한 쿼리를 수행하는 MongoDB 쿼리를 수행해야합니다. MongoDB 쿼리 관련 문제

나는 지금까지이 있지만 그것은 작동하지 않습니다

$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'); 

가 어떻게 일을이 쿼리를 변경할 수 있습니까?

답변

0

이것은 이상하게 보입니다. 당신은 이몽고가 제공하는 ID를 사용하지 않고 있습니까?

원한다면 원시 문자열을 몽고 ID로 변환하는 특수 몽고이 함수를 사용해야합니다. 기본 몽고이드를 사용하지 않는다면 ... 정말로해야합니다!

왜 null을 설정해야합니까 ?? Mongo는 필드가 사용되지 않는다면 매우 특이하지 않습니다. 널 값을 설정하지 않아도됩니다. 필드를 포함하지 마십시오.이 값은 null 값을 저장해야하는 곳이 아닙니다. mongo db는 다른 열을 가질 수 있습니다. db를 쿼리 할 때 mongo의 네이티브 메소드를 사용하여 필드가 존재하는지 검사 할 수 있습니다 ..

mongo를 사용해야하는 방식으로 사용하면됩니다. 이러한 문제는 당신이 가

당신의 쿼리처럼 보일 것이다

가있는

$this->CI->mongo_db->select('access_token')->where(array('_id' => MongoId($session_id), exists => array('access_token' => -1)))->get('oauth_sessions'); 
같은