0

MongoDB からレコードをフェッチするためのクエリを次に示します。

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

コレクションに 10 件のレコードがあり、これが 8 番目に新しいとします。このレコードがコレクション内の 10 件のレコードの 8 位にあることを確認するにはどうすればよいですか?

4

1 に答える 1

1

Mongo ではこのようなことはできません。ID はランダムに生成されたハッシュであり、リレーショナル データベース ID のように連続しているとは限りません。

フィールドが存在する限り、IS はシーケンシャルであることが保証されているため、代わりに 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 に答える