0

这是从 MongoDB 获取记录的查询:

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

假设集合中有 10 条记录,这是第 8 条最新记录。我怎样才能从集合中的 10 条记录中发现这条记录位于第 8 位?

4

1 回答 1

1

你不能在 Mongo 中做这样的事情:ID 是随机生成的散列,不能保证像关系数据库 ID 一样是连续的。

我会改为按 created_at 排序,因为只要该字段存在,它就保证是连续的。考虑这样的事情:

article = Article.find(params[:id])
next = Article.where({"created_at" => {"$gt" => article.created_at}}).desc(:created_at).first
于 2013-03-21T17:44:43.367 回答