MongoDB Sortuj wyniki zapytania

Mongodb Sortuj Wyniki Zapytania



Prawie wszystkie systemy baz danych nadają priorytet sortowaniu danych przed ich pobraniem, co odróżnia je od innych metod przechowywania danych. MongoDB ma również różne sposoby określania sposobu sortowania danych. Najczęściej używamy metody sort() do określenia kolejności, w jakiej pojawia się dokument. Kolejność sekwencji jest przekazywana jako parametr do metody sort(). Po jednym lub kilku polach składających się na metodę sort() często występuje wartość „1” lub „-1”. Metoda sort() czyni zapytanie bardziej czytelnym, co poprawia zrozumienie określonej kolekcji.

W jaki sposób MongoDB sortuje wyniki zapytań?

Metoda sort przyjmuje pole i powiązaną z nim wartość jako pojedynczy parametr. Metoda sort akceptuje parametry w formacie JSON, takie jak {Field: Value}. Wiele pól i wartości można również wprowadzić w metodzie sort() w celu pobrania posortowanych dokumentów z kolekcji. Rozważ następujący dokument, w którym umieściliśmy wiele innych dokumentów w naszej bazie danych. Nazwa tej bazy danych MongoDB nosi tytuł „Pracownicy”. Kolekcja „Pracownicy” zawiera wszystkie informacje o pracownikach pokazanych poniżej.

db.Employees.insertMany([
{
'imię': 'Robert',
'DOB': '14-05-1993',
'Płeć męska',
'e-mail': ' [chroniony e-mail] ',
'departament': 'Bezpieczeństwo',
„pensja”: 5000
},
{
'imię': 'Kyl',
'DOB': '31-05-1999',
'Płeć żeńska',
'e-mail': ' [chroniony e-mail] ',
'dział': 'IT',
„pensja”: 6200
},
{
'imię': 'Mateusz',
'DOB': '26-04-1993',
'Płeć męska',
'e-mail': ' [chroniony e-mail] ',
'dział': 'Rachunki',
„pensja”: 3500
},
{
'imię': 'Kevin',
'DOB': '14-07-1991',
'Płeć męska',
'e-mail': ' [chroniony e-mail] ',
'dział': 'Bezpieczeństwo',
„pensja”: 4500
},

{
'imię': 'Julia',
'DOB': '09-12-2000',
'Płeć żeńska',
'e-mail': ' [chroniony e-mail] ',
'dział': 'IT',
„pensja”: 2500
}
])

Kolekcja „Pracownik” jest wstawiana wraz z dostarczonymi dokumentami, których potwierdzenie jest pokazane w poniższym wyniku. Zamierzamy użyć tego dokumentu kolekcji do pokazania funkcjonalności wyników zapytania sortującego.









Przykład nr 1: nieposortowana kolekcja MongoDB

Gdy zapytanie wyszukiwania jest wykonywane za pomocą metody find(), zawsze zwraca nieposortowaną kolekcję dokumentów. Może to być jaśniejsze dzięki wynikom zapytania podanym poniżej.



>db.Employees.find({},{_id:0})

Tutaj mamy zapytanie o kolekcję „Employee” za pomocą metody find(). Metoda find() pobiera pusty parametr wraz z „_id:0”. Aby uzyskać prostszy wynik, identyfikator dokumentu jest usuwany za pomocą operatora „_id:0”. Domyślnie nieposortowane kolekcje uzyskujemy podczas przeszukiwania zapytania metodą find(). Dane wyjściowe pobrane poniżej to wszystkie nieposortowane dokumenty w sposób, który mamy w czasie wstawiania.





Przykład nr 2: MongoDB sortuje wyniki zapytania w porządku rosnącym

Posortowaną kolekcję w MongoDB uzyskuje się za pomocą metody sort(), którą należy umieścić po metodzie find(). Metoda sort() w MongoDB przyjmuje parametr, który jest dołączony do nazwy pola i kolejności sortowania dokumentu. Musimy wpisać „1” jako parametr w polu, ponieważ w tym konkretnym przykładzie będziemy pobierać dokumenty w porządku rosnącym. Następujące wyniki w zapytaniu sortującym są w porządku rosnącym.



>db.Employees.find().sort({nazwa:1})

Tutaj użyliśmy metody sort() po zapytaniu wyszukiwania. Metoda sort() służy do sortowania pola „nazwa” w kolejności rosnącej, ponieważ wartość „1” znajduje się obok określonego pola. Należy zauważyć, że jeśli metoda sort() nie zostanie określona z żadną wartością parametryczną, kolekcja nie zostanie posortowana. Dane wyjściowe metody sort() zostaną uzyskane w kolejności domyślnej. Wyniki metody sort() według pola nazwy w porządku rosnącym są wyświetlane w następującej powłoce MongoDB.

Przykład nr 3: MongoDB sortuje wyniki zapytania w kolejności malejącej

Teraz pokazujemy wyniki zapytania sortowania MongoDB w kolejności malejącej. Ten rodzaj zapytania jest taki sam jak w powyższym przykładzie, ale z jedną różnicą. W przypadku porządku malejącego metoda sort() przyjmuje wartość „-1” dla nazwy kolumny. Wyniki zapytania sortującego w kolejności malejącej podano poniżej.

>db.Pracownicy.find({},{'email':1,_id:0}).sort({'email':-1})

W tym przypadku zapytanie rozpoczyna się od metody find(), która znajduje pole „email” i zwraca tylko wartości pola „email”. Następnie określiliśmy metodę sort(), która służy do sortowania pola „email”, a wartość „-1” obok niej oznacza, że ​​otrzymane wyniki sortowania będą w kolejności malejącej. Wyniki zapytania sortującego w kolejności malejącej są pobierane po wykonaniu go w powłoce MongoDB.

Przykład nr 4: MongoDB sortuje wyniki zapytania dla wielu pól

Możemy sortować wiele pól w MongoDB za pomocą metody sort(). Pola do sortowania należy zadeklarować w metodzie sort(). Sortowanie jest oparte na kolejności deklaracji pól, a kolejność sortowania jest sprawdzana od lewej do prawej. Zapytanie do sortowania wielu pól powinno wyglądać tak:

>db.Employees.find({},{_id:0}).sort({'nazwa':1,'wynagrodzenie':1})

Tutaj przekazywana jest metoda sort() z polami „nazwisko” i „wynagrodzenie”, które mają zostać posortowane. Pole „nazwisko” z kolekcji „Pracownik” jest sortowane jako pierwsze, ponieważ jest to pole pierwszego argumentu metody sort(). Następnie metoda sort() sortuje pole drugiego argumentu „wynagrodzenie”. Kolejność obu pól to „1”, co oznacza, że ​​sortowanie będzie w porządku rosnącym. Dane wyjściowe dla wielu pól zapytania sortującego są generowane w podanej poniżej kolejności sortowania.

Przykład nr 5: MongoDB sortuje wyniki zapytania z metodą limitów

Ponadto metodę sort() można również łączyć z metodą limit(), która podaje ograniczoną liczbę posortowanych dokumentów według tego zapytania wyszukiwania. Metoda limit() wymaga liczby całkowitej jako parametru, co ogranicza liczbę dokumentów, które powinny znaleźć się w zbiorze wyjściowym. Poniżej ustawione jest zapytanie wyszukiwania, które najpierw sortuje dokument, a następnie udostępnia określony limit dokumentów.

>db.Employees.find({},{_id:0}).sort({'department':1,'DOB':1}).limit(4).pretty()

Tutaj mamy zapytanie wyszukiwania, które rozpoczyna operację sortowania dla kolumny „department”, a następnie dla kolumny „DOB” w kolejności rosnącej za pomocą metody sort(). Po zakończeniu sortowania umieściliśmy obok niego metodę limit() w celu odzyskania ograniczonego dokumentu. Metoda limit() otrzymuje wartość liczbową „4”, co oznacza, że ​​wyświetla tylko cztery posortowane dokumenty na wyjściu, jak pokazano na poniższym ekranie:

Przykład nr 6: MongoDB sortuje wyniki zapytania z agregacją $sort

We wszystkich powyższych przykładach przeprowadziliśmy sortowanie za pomocą metody sort() MongoDB. Istnieje inny sposób sortowania w MongoDB, który jest realizowany poprzez agregację $sort. Operator $sort sortuje wszystkie dokumenty wejściowe, które następnie zwracają posortowane dokumenty do potoku. Operator $sort jest stosowany do poniższej kolekcji „Pracownicy”.

db.Employees.aggregate([ { $ sort : { pensja : 1, _id: -1 } } ])

Tutaj wywołaliśmy metodę agregującą, wewnątrz której możemy użyć operatora „$sort”. Następnie mamy wyrażenie operatora $sort, które sortuje kolumnę „wynagrodzenie” w porządku rosnącym, a kolumnę „id” w porządku malejącym. Agregacja $sort zastosowana do pola daje następujące wyniki:

Przykład nr 6: MongoDB sortuje wyniki zapytania z metodą pomijania

Metodę sort() można również sparować z metodą skip(). Wynikowy zestaw danych może zawierać określoną liczbę dokumentów, które zostaną zignorowane przy użyciu metody skip(). Podobnie jak metoda limit() metoda skip() akceptuje również wartość liczbową, która wskazuje liczbę dokumentów do pominięcia. Połączyliśmy metodę sort() z metodą skip() w zapytaniu sortującym.

>db.Employees.find({},{_id:0}).sort({'wynagrodzenie':1}).skip(4).ładnie()

Tutaj użyliśmy metody skip() obok metody sort(). Gdy metoda sort() sortuje dokumenty, przekazuje wynik sortowania do metody sort(). Następnie metoda skip() usunęła z kolekcji pierwsze cztery posortowane dokumenty.

Wniosek

Artykuł dotyczy sortowania wyników zapytania w MongoDB. Wykorzystaliśmy w tym celu metodę sort(), która porządkuje rekordy w określonej kolejności. Użyliśmy również metody sort() do wielokrotnego sortowania w kilku polach. Metoda sort() jest następnie parowana z metodami limit() i skip() do posortowanych dokumentów przy użyciu tych operacji. Dodatkowo udostępniliśmy agregację $sort dla wyników zapytań sortujących w MongoDB.