Rails + MongoDB:查找比给定值更大的ObjectId

时间:2013-03-20 23:12:08

标签: ruby-on-rails ruby mongodb objectid

我正在尝试在MongoDB中找到下一个(最新的)文档:

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'

但仍然找不到问题......我将不胜感激每一个帮助!

谢谢

2 个答案:

答案 0 :(得分:1)

以下内容将返回下一个对象

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

答案 1 :(得分:0)

我认为您要拨打where而不是find,用于按特定ID获取记录。

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