以下是从MongoDB获取记录的查询:
Article.where({'_id' => { "$gt" => params[:id]}}).sort({:_id => 1}).first
让我们说收集中有10条记录,这是最新的第8条记录。我如何才能发现该记录位于该集合中10条记录中的第8位?
答案 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