Rails + MongoDB:如何找出当前记录的位置?

时间:2013-03-21 17:17:06

标签: ruby-on-rails ruby mongodb nosql

以下是从MongoDB获取记录的查询:

Article.where({'_id' => { "$gt" => params[:id]}}).sort({:_id => 1}).first

让我们说收集中有10条记录,这是最新的第8条记录。我如何才能发现该记录位于该集合中10条记录中的第8位?

1 个答案:

答案 0 :(得分:1)

你不能在Mongo中做这样的事情:ID是随机生成的哈希值,并不保证像关系数据库ID那样是顺序的。

我会用created_at排序,因为只要该字段存在,IS就保证是顺序的。考虑这样的事情:

article = Article.find(params[:id])
next = Article.where({"created_at" => {"$gt" => article.created_at}}).desc(:created_at).first