MongoDB $ rozmiar

MongoDB $ rozmiar
Operatorzy są bardzo przydatni, gdy trzeba coś szybko wykonać bez wykonywania złożonych zapytań. MongoDB umożliwia użycie operatorów w celu zwiększenia jego funkcjonalności i szybkiego przetwarzania w systemie bazy danych. Jednym z tych operatorów MongoDB jest operator „rozmiaru”, który jest do tej pory wykorzystywany do wyświetlania jedynego rekordu z pozostałych zawierających określoną liczbę pól w jednym z pól macierzy. Innymi słowy, operator „rozmiaru” można zastosować do określonego pola tablicy, aby sprawdzić, czy to pole ma określoną liczbę elementów i wyświetlić cały rekord, z którego należy tablica. Dlatego ten przewodnik będzie zademonstrować użycie operatora „rozmiaru” w MongoDB za pomocą prostych zapytań.

Utwórz kolekcję

Najpierw wyszukajmy już istniejące bazy danych w naszym MongoDB. W tym celu otworzymy powłokę MongoDB i uruchomić instrukcję „pokaż DBS” w obszarze zapytań zgodnie. Wyjście tej instrukcji pokazuje 3 wbudowane bazy danych o różnych rozmiarach, gdy pracujemy w manekinie „Test”.

Test> Pokaż DBS
admin 40.00 kib
Config 60.00 kib
Lokalny 72.00 kib

Korzystając z instrukcji „Użyj” wraz z nazwą bazy danych „Test”, możesz przejść do dowolnej bazy danych, jak to zrobiliśmy poniżej. Wyjście pokazuje, że już używamy bazy danych „testowych”.

Test> Użyj testu
już w teście DB

Wyświetlajmy wszystkie dostępne kolekcje bazy danych „testowych” za pośrednictwem zapytania „Pokaż kolekcje”. Szczegóły wyjściowe nic nie pokazuje, ponieważ nie mamy teraz kolekcji.

test> Pokaż kolekcje;

Tworzymy nową kolekcję o nazwie „Test” w bazie danych „Test”, który zostanie wykorzystany dalej. W tym celu wypróbowaliśmy zapytanie „DB” z funkcją „CreateCollection” MongoDB. Status wyjściowy „OK: 1” pokazuje, że kolekcja jest tworzona pomyślnie.

Test> db.CreateCollection („Test”)
OK: 1

Przykład nr 01:

Czas zacząć od naszego pierwszego przykładu, dodając niektóre rekordy do kolekcji „testowej”, którą właśnie stworzyliśmy. Aby to zrobić, użyjemy funkcji „Wstaw” MongoDB w tym samym zapytaniu „DB” wraz z nazwą kolekcji „Test”. Dodany rekord zawiera w sumie 3 pól. Dwa pola znajdują się w tablicy i.E „PersonalDetails” i „AcademicRecord” zawierają podfamy. Zastosowanie nawiasów kręconych pokazuje całkowitą liczbę rekordów w kolekcji i całkowitą liczbę pól w określonym polu. Rekordy zostały doskonale dodane.

Test> db.Test.wstaw (nazwa: „tina”, personalDetails: [wiek: 44, e -mail: "[email protected] "],
… AcademicRecord: [kwalifikacja: „BS”, CGPA: 3.8])
Amortyzacja: kolekcja.insert () jest przestarzałe. Użyj InserTone, InsertMany lub Bulkwrite.

Uznany: prawda,
InsertedIds: '0': ObjectId ("63B389FDA7AC5549359EBA32")

Aby uzyskać wszystkie rekordy wyświetlane w powładzie MongoDB, będziemy używać funkcji Find () w tej samej instrukcji po nazwie kolekcji, która również podąża za funkcją foreach (). Funkcja foreach () drukuje rekordy w formacie JSON, jak pokazano poniżej.

Test> db.Test.znajdować().Foreach (printJson)

_id: ObjectID („63B389FDA7AC5549359EBA32”),
Nazwa: „Tina”,
Dane osobowe: [

Wiek: 44,
E -mail: '[email protected] '

],
AcademicRecord: [

Kwalifikacja: „BS”,
CGPA: 3.8

]

Czas użyć operatora „rozmiaru”, aby wyświetlić rekord tylko z określoną liczbą pól. Więc wykorzystaliśmy go w funkcji Find (), aby uzyskać rekord, w którym pole PersonalDetails ma 2 osobne rekordy pola, każdy rekord w nawiasach . Dane wyjściowe nic nie pokazuje, ponieważ żaden rekord nie ma 2 pól w polu PersonalDetails.

Test> db.Test.Znajdź (PersonalDetails: $ size: 2)

Po ustawieniu wartości operatora „rozmiaru” na 1 i wykonaniu zaktualizowanej instrukcji, mamy cały rekord z jego zagnieżdżonymi pola wyświetlonymi na naszym ekranie powłoki MongoDB, jak poniżej. Powód tego wyświetlacza jest jasny: PersonalDetails ma 1 rekord zgodnie z nawiasami .

Test> db.Test.Znajdź (PersonalDetails: $ size: 1)
[[[

_id: ObjectID („63B389FDA7AC5549359EBA32”),
Nazwa: „Tina”,
PersonalDetails: [wiek: 44, e -mail: '[email protected] '],
AcademicRecord: [kwalifikacja: „BS”, CGPA: 3.8]

]

Przykład nr 02:

Dodajmy kolejny rekord tego samego formatu w kolekcji „testu”, aby sprawdzić, czy operator rozmiaru działa na wielu rekordach, czy nie. Oczekiwano, że to samo zapytanie do wstawki doda rekordy dla osoby „BEBA”. Chociaż dodaliśmy więcej niż jedno pole w ramach PersonalDetails i AcademicRecord, dodanie tych pola w jednej parie nawiasów kręconych uważa je za jeden rekord.

Test> db.Test.insert (nazwa: „beba”, personalDetails: [wiek: 44, e -mail: "[email protected] ", miasto:„ California ”], AcademicRecord: [kwalifikacja:„ MS ”, cgpa: 3.9])

Uznany: prawda,
InsertedIds: '0': ObjectId ("63B38C57A7AC5549359EBA33")

Po dodaniu drugiego rekordu wypróbowaliśmy to samo zapytanie, aby wyświetlić rekordy, które mamy w kolekcji „Test”. Oba rekordy były wyświetlane w standardowym formacie tablic w MongoDB.

Test> db.Test.znajdować().ładny()
[[[

_id: ObjectID („63B389FDA7AC5549359EBA32”),
Nazwa: „Tina”,
PersonalDetails: [wiek: 44, e -mail: '[email protected] '],
AcademicRecord: [kwalifikacja: „BS”, CGPA: 3.8]
,

_id: ObjectID („63B38C57A7AC5549359EBA33”),
Nazwa: „beba”,
PersonalDetails: [wiek: 44, e -mail: '[email protected] ', miasto: „California”],
AcademicRecord: [kwalifikacja: „MS”, cgpa: 3.9]

]

Wykonajmy zapytanie o funkcję „Znajdź”, aby wyświetlić rekordy kolekcji testowej, wykorzystując wartość operatora „$ rozmiar” ustawionego na „3”, który został zastosowany do pola PersonalDetails. Ponieważ pole PersonalDetails nie zawiera na razie więcej niż 1, dlatego wyjście jest zerowe.

Test> db.Test.Znajdź (PersonalDetails: $ size: 3).ładny()

Teraz aktualizacja wartości operatora „$ set” do 1, jak pokazano z poniższego zapytania. Ustawa wartość „1” pokazuje, że jedyny rekord zostanie pokazany na ekranie konsoli, na którym pole „Peronaldetail” ma w sobie jeden rekord. Jak dodaliśmy oba główne rekordy, trzymaj pojedyncze pola w polu I PersonalDetails.mi. , oba rekordy są wyświetlane.

Test> db.Test.Znajdź (PersonalDetails: $ size: 1).ładny()
[[[

_id: ObjectID („63B389FDA7AC5549359EBA32”),
Nazwa: „Tina”,
PersonalDetails: [wiek: 44, e -mail: '[email protected] '],
AcademicRecord: [kwalifikacja: „BS”, CGPA: 3.8]
,

_id: ObjectID („63B38C57A7AC5549359EBA33”),
Nazwa: „beba”,
PersonalDetails: [wiek: 44, e -mail: '[email protected] ', miasto: „California”],
AcademicRecord: [kwalifikacja: „MS”, cgpa: 3.9]

]

Przykład nr 03:

Włóżmy nowy rekord w kolekcji „Test” za pomocą funkcji „Wstaw”. Tym razem decydujemy się na dodanie 3 pól w polu PersonalDetails tej kolekcji, a dziedzina „AcademicRecord” zawiera w niej 2 rekordy. Będziemy na nim zastosować operator „rozmiaru”.

Test> db.Test.wstaw (nazwa: „Paul”, PersonalDetails: [wiek: 43, e -mail: „[email protected] ", City:" Texas "], AcademicRecord: [kwalifikacja:" Phd ", cgpa: 4]))

Uznany: prawda,
InsertedIds: '0': ObjectId ("63B38D59A7AC5549359EBA34")

Teraz, gdy dodaliśmy zagnieżdżony rekord w kolekcji „testu”, będziemy wyświetlać go na ekranie konsoli za pomocą instrukcji funkcji Find (). Aby wyświetlić konkretny rekord, musimy wspomnieć o nazwie dowolnego pola, a następnie jego wartości w określonym rekordzie i.mi., Aby wyświetlić zapis, w którym pole „nazwa” ma swoją wartość „Paul”. Wyświetlono tylko ostatni dodany rekord.

Test> db.Test.Znajdź (nazwa: „Paul”)
[[[

_id: ObjectID („63B38D59A7AC5549359EBA34”),
Imię: „Paul”,
PersonalDetails: [wiek: 43, e -mail: '[email protected] ', City:' Texas '],
AcademicRecord: [kwalifikacja: „PhD”, cgpa: 4]

]

Zanurzmy się w przykładzie zapytania, aby wyświetlić rekordy z kolekcji „test”, aby wyświetlić tylko rekord z jego rozmiarem pola PersonalDetails równy 3 i.mi., mają w sobie 3 pól. W tym celu wypróbuj tę samą funkcję FINK (), a następnie nazwę pola „PersonalDetails”, operator „$ size” i funkcja Pretty (), aby wyświetlić wyjście w tablicy. Ostatnia płyta, którą właśnie dodaliśmy, został wyświetlony na konsoli, ponieważ jej tablica „PersonalDetails” zawiera 3 rekordy terenowe.

Test> db.Test.Znajdź (PersonalDetails: $ size: 3).ładny()
[[[

_id: ObjectID („63B38D59A7AC5549359EBA34”),
Imię: „Paul”,
PersonalDetails: [wiek: 43, e -mail: '[email protected] ', City:' Texas '],
AcademicRecord: [kwalifikacja: „PhD”, cgpa: 4]

]

Wniosek

Po przejrzeniu tego przewodnika wraz z trzema wymienionymi przykładami kodu, będziesz mógł wyszukać określone pole tablicy z określonego rekordu danych zawierającego tylko ustawioną liczbę elementów za pośrednictwem operatora wielkości MongoDB. Omówiliśmy, w jaki sposób można wykorzystać tablicę wielokrotnego pola w rekordzie, aby operator rozmiaru działał za pomocą instrukcji funkcji find (). W tych ilustracjach pole wielkości działa, aby uzyskać wszystkie wyświetlane rekordy, które mają określone pole z określoną liczbą rekordów.