2013-05-26 11 views
7

Potrzebuję zrobić sortowanie alfanumeryczne na jednym z pól w mojej kolekcji. To pole zawiera informacje o chromosomie.Czy MongoDB może sortować alfanumerycznie?

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

Zamiast się wartości w tej kolejności, mam je w

Chr1, 
Chr11 

Jest to powszechny problem i zastanawiałem się, czy MongoDB ma wbudowane rozwiązanie dla tego rodzaju lub powinniśmy włamać tak jak zwykle robimy w Oracle. Jeśli nie ma wbudowanego rozwiązania, jaki jest najlepszy sposób na uzyskanie tego rodzaju? Sortowanie naturalne jest rozwiązaniem dopuszczalnym, ale już zastosowałem je do innej dziedziny.

Każda pomoc byłaby bardzo ceniona.

+0

Sortuje jako ciąg. Nie ma wbudowanego sposobu, aby sobie z tym poradzić (czy istnieje w innych DB?)? – WiredPrairie

Odpowiedz

5

MongoDB nie ma wbudowanego sposobu sortowania danych alfanumerycznych. Ale gdy wszystkie twoje dane mają pole z ciągiem o tej samej konwencji liczby "Chr" +, możesz umieścić numer w innym polu, zachować je jako liczbę całkowitą zamiast ciągu i sortować według tego.

+0

Ważne rozwiązanie. Zapytaj, czy strona internetowa Tom głosi to samo. Powinienem być bardziej przejrzysty w moich przykładowych danych. Mam także pewne pola, których nie da się łatwo oddzielić. ac1tg, ac2tg, 1actg itd. Jakieś sugestie? Mam funkcję w SQL Sever do sortowania tego pola. Nie jestem pewien co do MongoDB. –

Powiązane problemy