0

ルビーのmongodbドライバーでマルチフィールドソートを行う方法を知りたい

次の例を見つけることができる公式サイトからのソートの例:

# Sort in ascending order by :i
coll.find.sort(:i)

# Sort in descending order by :i
coll.find.sort(:i => :desc)

これらの例によると、私はこのようなことをするのに疲れました

coll.find.sort(:i,:j)

そしてこれはうまくいきませんでした

ルビードライバーでマルチフィールドソートを行う正しい方法を知っていますか。

4

2 に答える 2

1

並べ替え方法は、単一フィールドの並べ替えの場合はキーを使用するか、複数フィールドの並べ替えの場合は[key、direction]ペアの配列を使用できます。これがあなたのように見えるでしょう:

coll.find.sort(["score", 1], ["created_at", 1])
于 2012-11-02T14:36:16.530 に答える
0

簡単な調査の後、答えが見つかりました

どちらでも使用できます

hash_as_sort_parameters({:field1 => :asc, "field2" => :desc})

また

array_as_sort_parameters([["field1", :asc], ["field2", :desc]])

ハッシュを使用した最初の方法は、何らかの理由で機能しませんが、2番目の方法は完全に問題ありません

于 2012-11-02T14:57:44.720 に答える