2013-05-26 7 views
7

私のコレクションのフィールドの1つに英数字のソートを行う必要があります。このフィールドには、染色体情報が含まれます。代わりに、この順序で値を取得するMongoDBは英数字ソートを行うことができますか?

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

、私は

Chr1, 
Chr11 

これは共通の問題であるにそれらを取得し、MongoDBのは、この種のために構築されたソリューションを持っているかどうかを疑問に思ったか、我々はハックすべきですそれはOracleの通常通りです。 組み込みのソリューションがない場合、このソートを取得する最善の方法は何ですか? Naturalソートは許容される解決策ですが、私はすでに別のフィールドに適用しています。

ご協力いただければ幸いです。

+0

文字列としてソートしています。これを処理する組み込みの方法はありません(他のDBにはありますか?) – WiredPrairie

答えて

5

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

+0

有効なソリューション。トムのウェブサイトに同じことを説き聞かせてください。私は私のサンプルデータでより明確になっていたはずです。私はまた、簡単に分かれないいくつかのフィールドを持っています。 ac1tg、ac2tg、1actgなど任意の提案?このフィールドをソートするためのSQL Severには関数があります。 MongoDBについては不明。 –

関連する問題