1

mongo と mongoid を使用した Rails 3.2.x アプリがあります。「ユーザー」を名前でソートする「スコープ」をモデルに定義したいと考えています。問題は、並べ替えが大文字と小文字を区別しないことです。これは、mongo 自体ではサポートされていません。

スコープを使用して正しく行う方法はありますか?

4

2 に答える 2

0

これは、永続化された計算フィールド パターンを必要とする典型的なケースです。

並べ替えたいフィールドが と呼ばれているとしnameます。モデルで、割り当てをトラップしname、クエリできる追加のフィールドを設定します。例えば:

def name=(value)
    self['name'] = value
    self['_lc_name'] = value.downcase
end

計算フィールドを Mongoid フィールドとして定義する必要はありません。

Mongoid で_lc_name使用してソートを高速化するためのインデックスを作成します。index

于 2012-12-20T01:23:40.983 に答える
-1

これを実現するには、 mongodb 集約フレームワークを使用する必要があります。

簡単な要約は、これを達成するためにパイプのようなコマンドを実行できるということです(UNIXのように)。集約フレームワークを使用して、「n」回の操作を実行できます。

于 2012-12-19T20:17:32.613 に答える