MongoDB からレコードをフェッチするためのクエリを次に示します。
Article.where({'_id' => { "$gt" => params[:id]}}).sort({:_id => 1}).first
コレクションに 10 件のレコードがあり、これが 8 番目に新しいとします。このレコードがコレクション内の 10 件のレコードの 8 位にあることを確認するにはどうすればよいですか?
MongoDB からレコードをフェッチするためのクエリを次に示します。
Article.where({'_id' => { "$gt" => params[:id]}}).sort({:_id => 1}).first
コレクションに 10 件のレコードがあり、これが 8 番目に新しいとします。このレコードがコレクション内の 10 件のレコードの 8 位にあることを確認するにはどうすればよいですか?
Mongo ではこのようなことはできません。ID はランダムに生成されたハッシュであり、リレーショナル データベース ID のように連続しているとは限りません。
フィールドが存在する限り、IS はシーケンシャルであることが保証されているため、代わりに created_at でソートします。次のようなことを考えてみましょう:
article = Article.find(params[:id])
next = Article.where({"created_at" => {"$gt" => article.created_at}}).desc(:created_at).first