8

コレクション内のフィールドの 1 つで英数字の並べ替えを行う必要があります。このフィールドには染色体情報が含まれています。

Chr1, 
Chr2,
..,
..,
..,
Chr10,
Chr11,
..,
..,
ChrX,
ChrY

この順序で値を取得する代わりに、

Chr1, 
Chr11

これはよくある問題であり、MongoDB にこの種のソリューションが組み込まれているのか、それとも Oracle で通常行っているようにハックする必要があるのか​​疑問に思っていました。組み込みのソリューションがない場合、この種のものを取得する最良の方法は何ですか? 自然な並べ替えは許容できる解決策ですが、私はすでに別の分野に適用しています。

どんな助けでも大歓迎です。

4

3 に答える 3

5

MongoDB には、データを英数字でソートする組み込みの方法がありません。しかし、すべてのデータに "Chr" + 数値という同じ規則の文字列を含むフィールドがある場合、数値を別のフィールドに入れ、文字列ではなく整数として保持し、それで並べ替えることができます。

于 2013-05-26T15:58:01.733 に答える