2013-03-20 7 views
2

내가 MongoDB를 옆 (최신) 문서를 찾기 위해 노력하고 주어진 :레일 + MongoDB를 : ObjectId가 찾기보다 더 큰 값

Article.find({'_id' => { "$gt" => Moped::BSON::ObjectId(id_from_database)}}) 

는하지만이 쿼리를 실행할 때마다, 나는

Problem: 
    Document(s) not found for class Article with id(s) {"_id"=>{"$gt"=>"given value"}}. 

를 얻을 수 다음 보석을 설치했습니다 :

gem 'mongoid' 
gem 'bson' 
gem 'bson_ext' 

그래도 문제를 찾을 수 없습니다 ... 나는 각 도움에 감사 할 것입니다!

답변

0

난 당신이 특정 ID로 기록을 얻기 위해 사용하는 대신 findwhere를 호출 할 생각 감사드립니다.

Article.where({'_id' => { "$gt" => Moped::BSON::ObjectId(id_from_database)}}).sort(_id: 1).first 
+0

를 반환하지만,이 경우이 오류 메시지가 얻을 : #에 대한 '정의되지 않은 메서드'ID를 '<배열 : 0x007ff71d671b20>' – user984621

+0

당신은 추가해야' .first'의 마지막까지'_id'로 정렬합니다. 나는 대답을 업데이트 할 것이다. –

1

다음은 다음 개체

Article.where({:_id => {:$gt => id_from_database}}).sort({:_id=>1}).first 
관련 문제