2017-06-15 2 views
0

大文字と小文字を区別しない並べ替え作業を行うことは難しいと私は混乱しています。そこで、小文字のメインテキストフィールドに加えて、2番目のフィールドを追加することにしました。 私はC#ドライバを使用しています。私のオブジェクトモデルでは、元の小文字の文字列を含むSortableStringのようなものがあります。問題は、mongodbが内部オブジェクトフィールドのソートをどのように処理するかです。ルートレベルフィールドのソートと比較してパフォーマンスが悪いですか?どのようなrecomendations? (インデックスなど)内部オブジェクトフィールドとそのパフォーマンスによる並べ替え

更新:

共通のオブジェクト構造

"_id" : ObjectId("57ebda72844c4c08d4ad2832"), 
"text" : { 
    "_l" : "abc", 
    "_o" : "Abc" 
} 

共通クエリ構造が

db.Texts.find({}).sort({"text._l": 1}).skip(100).limit(50) 
+0

こんにちはahydrax - あなたが私たちにあなたが検討しているデータ構造とインデックス、そしてそれに対して実行しようとする典型的なクエリを表示できますか?この詳細がなければ、提案されたデータ構造が有用かどうかを確かめるのは難しいです。 –

+0

@VinceBowdren回答がありましたので、例文 – ahydrax

答えて

1

をソートするために使用されているそれだけで正常に動作します。

MongoDBはこのようにindex an embedded fieldを喜んでお送りします。トップレベルのフィールドのインデックス作成と同じようにクエリのパフォーマンスが向上します。あなたのケースでは

は、あなたがこのようなインデックスの恩恵を受けるかもしれない:インデックスの

{ "text._l": 1 } 
{ "someOtherField" : 1, "text._l": 1 } 

あなたの選択はあなたが実行されます照会まさに依存します。

+0

を更新しました。パフォーマンス上の問題が発生する恐れがありました。 – ahydrax

関連する問題