Operator filtru MongoDB $

Operator filtru MongoDB $
Operator filtrów MongoDB $ pobiera podzbiór tablicy oparty na predefiniowanym kryterium. Innym słowem operator $ Filtr zapewnia tablicę, która zawiera tylko elementy spełniające kryteria w kolejności, że zostały one określone. Operator Filtr $ ma parametry zawierające „wejście”, „as” i „cond”. Argument „wejściowy” jest wyrażeniem, które prowadzi pole tablicy do filtrowania określonego dokumentu. Dalej jest opcjonalny argument „AS”, który przyjmuje nazwę zmiennej elementu tablicy wejściowej, aby uzyskać dostęp do każdego elementu. Następnie argument „CUNT” określa, czy element jest zawarty w wynikającym z nich tablicy.

Jak używany jest operator filtrów $ w MongoDB

Operator Filtr $ MongoDB służy do odfiltrowania danych tablicy zgodnie z podaną instrukcją warunkową. Wykorzystanie operatora $ Filtr działa na dokumentach wstawionych do określonej kolekcji MongoDB. Tutaj wdrażamy zapytanie InsertMany () MongoDB, aby wstawić trzy dokumenty do kolekcji „krykieta”. Każdy rekord zawiera trzy pola - „_id”, „odtwarzacz” i „runsrecord” - które są ustawione jako tablica. Format wstawiania dokumentu jest reprezentowany następująco:

db.Krykiet.InsertMany ([
„_id”: 1,
„Player”: „Ravi”,
„RunsRecord”: [100, 50, 70],
"Mecze" :

„Match1”: „WorldCup”,
„Rok”: „2000”

,

„_id”: 2,
„Player”: „Andrew”,
„RunsRecord”: [150, 90, 55]
,

„_id”: 3,
„Player”: „Smith”,
„RunsRecord”: [80, 99, 45]
,

„_id”: 4,
„Player”: „Alex”,
„RunsRecord”: []
])

Dokumenty w kolekcji „krykieta” są z powodzeniem wstawiane, jak pokazano przy następujących wynikach:

potwierdzony: true, InsertedIds: '0': 1, '1': 2, '2': 3, '3': 4

Przykład 1: MongoDB używa operatora $ filtr w MongoDB

Podstawowy operator filtrów $ MongoDB podano w tej sekcji. Ustawiliśmy zapytanie, w którym operator projektu $ jest wywoływany w metodzie zagregowanej. Wzywamy operator $ filtr w ramach operatora projektu $. Operator Filtr $ jest dalej określony za pomocą swojego parametru. Parametr „wejściowy” jest ustawiany o nazwie pola tablicy „$ runsRecord” z znakiem „$” w celu wyodrębnienia danych z niego. Następnie używamy parametru „jako”, aby nadać tytuł zmiennej powrotnej „RunSRecord”. Zmienna ta jest następnie odsyłana do używania parametru „COND” ze znakiem podwójnego dolara „$$”. Dalej jest parametr „cond”, w którym wyrażenie jest przypisane jako „$ gt: [„ $$ runsrecord ”, 50]”. Warunki sugerują, że operator „$ gt” otrzymuje element tablicy, który jest większy niż wartość „50” w polu tablicy „RunSRecord”.

db.Krykiet.agregat([

$ projekt:
highruns:
$ Filter:
Wejście: „$ runsRecord”,
Jak: „runsrecord”,
Cond: $ gt: ["$$ runsrecord", 50]




])

Wyniki następujące zapytanie $ Filtr zwracają tylko te wartości z tablicy, która jest większa „50”. Wartość mniejsza niż „50” jest ignorowana przez operator Filtr $.

[[[
_id: 1, Highruns: [100, 70],
_id: 2, Highruns: [150, 90, 55],
_id: 3, Highruns: [80, 99],
_id: 4, Highruns: []
]

Przykład 2: MongoDB używa operatora Filtr $ do filtrowania pola nieistniejącego

Teraz podejmujemy przypadek, w którym operator $ filtr jest stosowany do pola, który nie jest obecny w żadnych włożonych dokumentach zbiórki. Tutaj mamy zapytanie, w którym operator $ filtr jest stosowany z parametrami. Parametr wejściowy jest ustawiany z polem „$ wynagrodzenie” w celu filtrowania dokumentu. Następnie używamy parametru opcjonalnego „AS”, który jest również podany z nazwą zmienną „wynagrodzenie”, który jest używany w tablicy wejściowej jako element. Następnie mamy warunkowe wyrażenie w parametrze „cond” filtra $. Operator $ filtr filtruje element tablicy w oparciu o określony warunek, którym wynosi „$ gTE: [„ $$ pensja ”, 6000]”.

db.Krykiet.agregat([

$ match: _id: $ in: [2]
,

$ projekt:
highruns:
$ Filter:
Wejście: „$ wynagrodzenie”,
Jak: „wynagrodzenie”,
Cond: $ gte: [„$$ pensja”, 6000]




])

Jak wiemy, dostarczone pole „wynagrodzenia” nie jest obecne w dokumencie, którego „_id” jest „2”, więc wyjście poprzedniego zapytania operatora $ filtra.

[_id: 2, highruns: null]

Przykład 3: MongoDB używa operatora Filtr $ do filtrowania pustej tablicy

Następny jest scenariusz, w którym filtr $ jest stosowany w pustej tablicy. Operator $ filtra zwraca pusty zestaw tablicy, jeśli jeden z dokumentów w kolekcji ma pustą tablicę. Mamy następujące zapytanie $ Filtr Operator. Mamy najpierw operator $ mecz, w którym dostarczone jest wyrażenie „_id: $ in: [4]”. Gdy $ w operator znajduje wartość „4” w stosunku do pola „_id”, następny operator postępuje. Następnie mamy operator filtrów $, który filtruje tablicę elementów na podstawie danego warunku, który wynosi „$ gt: [„ $$ runsrecord ”, 45]”.

db.Krykiet.agregat([

$ match: _id: $ in: [4]
,

$ projekt:
highruns:
$ Filter:
Wejście: „$ runsRecord”,
Jak: „runsrecord”,
Cond: $ gt: ["$$ runsrecord", 45]




])

„_Id: 4” ma puste pole tablicy „RunSrecord”. Właśnie dlatego, gdy zapytanie jest wykonywane, wyświetla pustą tablicę w następujący sposób:

[_id: 4, Highruns: []]

Przykład 4: MongoDB używa operatora Filtr $ w MongoDB z opcjonalną nazwą zmiennej

Ustawiliśmy tytuł na zmienną w poprzednich instancjach za pomocą argumentu „AS”. Jeśli argument „AS” nie jest ustawiony o żadnej nazwie zmiennej, zmienna „$ this” jest domyślnie ustawiona przez MongoDB. Miejmy przykład zapytania do tego stwierdzenia. Dopasowujemy dokument, wywołując operator $ Match, w którym mamy pole „_id”, w którym ustawiane są wartości. Przypisujemy operator Filtr $ do operatora „$ Project”, w którym operator $ filtr jest wywoływany z parametrami. Tutaj mamy parametr „wejściowy” o nazwie pola tablicy „$ runsrecord”. Następnie stosujemy parametr „cond” do określonego warunku. Warunek jest ustalony jako „Cond: $ lt: [„ $$ this ”, 80]”. Tym razem operator $ LT służy do znalezienia wartości mniejszej niż wartość „80”. Zauważ, że zamiast nazwy zmiennej „$$ runsRecord” używamy tutaj nazwy zmiennej „$$ tej”, która nie wpływa na wynikowe wyjście.

db.Krykiet.agregat([

$ match: _id: $ in: [1, 2, 3, 4]
,

$ projekt:
highruns:
$ Filter:
Wejście: „$ runsRecord”,
Cond: $ lt: ["$$ this", 80]




])

Operator Filtr $ filtruje określoną tablicę z $ tą zmienną w ten sam sposób, jak w przypadku określonej zmiennej.

[[[
_id: 1, Highruns: [50, 70],
_id: 2, Highruns: [55],
_id: 3, Highruns: [45],
_id: 4, Highruns: []
]

Przykład 5: MongoDB używa operatora Filtr $ do filtrowania z wieloma warunkami

Możemy dostarczyć operatora $ Filtr więcej niż jeden warunek, aby odfiltrować tylko te dokumenty pasujące do danego warunku. Tutaj definiujemy operator $ filtr, w którym $ i operator są używane w parametrze „Cond”. $ I operator jest ustawiony na wiele warunków, takich jak „$ gte: [„ $$ runsrecord ”, 45]” i „$ lte: [„ $$ runsrecord ”, 99]”. $ I operator są używane, które wymagają obu warunków jako prawdziwych.

db.Krykiet.agregat([

$ projekt:
highruns:
$ Filter:
Wejście: „$ runsRecord”,
Jak: „runsrecord”,
Cond: $ i: [
$ gte: ["$$ runsrecord", 45],
$ lte: ["$$ runsrecord", 99]
]




])

W przypadku wielu warunków odfiltrujemy dopasowany dokument:

[[[
_id: 1, Highruns: [50, 70],
_id: 2, Highruns: [90, 55],
_id: 3, Highruns: [80, 99, 45],
_id: 4, Highruns: []
]

Wniosek

Zbadaliśmy ten artykuł, który dotyczy operatora Filtr $ MongoDB. Tutaj dostarczyliśmy implementację skryptu MongoDB operatora $ Filtr do filtrowania określonych danych. Najpierw zademonstrowaliśmy podstawowe użycie operatora filtra $. Następnie użyliśmy operatora Filtr $ przez dokument, którego pole nie jest dodawane w dokumencie. Obudowa pola pustego tablicy jest również wdrażana na operatorze Filtr, który pobiera pustą tablicę. Ponadto operator $ filtr jest używany z tą zmienną $, która jest domyślną zmienną.