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ą.