MongoDB $ istnieje zapytanie

MongoDB $ istnieje zapytanie

Operator MongoDB $ pozwala użytkownikowi uzyskać dokumenty z kolekcji, niezależnie od tego, czy odpowiednie pole jest obecne, czy nie. Operator $ ESTIS bierze tylko parametr logiczny, który może być prawdziwy lub fałszywy. Podana wartość prawdziwej dla operatora $ EXIS zwraca dopasowany dokument, który zawiera określone pole, nawet jeśli wartość pola jest null. Z drugiej strony dokumenty, które nie zawierają określonego pola, są zwracane, gdy wartość $ istnieje, jest ustawiona na false.

Jak działa operator $ w MongoDB?

Operator $ istnieje jest używany w określonej nazwie pola. Nazwa pola jest zdefiniowana w metodzie Find (). Następnie określona nazwa pola jest dodatkowo ustawiona jako wyrażenie operatora $. Poniższa składnia jest przewidziana w celu lepszego zrozumienia:

db.kolekcja.znaleźć (field_name: $ ext: boolean_value).

Przed rozpoczęciem korzystania z operatora $ Estis jest konieczne ustanowienie kolekcji MongoDB i odzyskania zawartości tej kolekcji, której operator $ Estists będzie używany. Używamy kolekcji „klienta” dla operatora $ i wstawiamy następujący dokument w tym kolekcji za pomocą metody insertMany ().

db.Klient.wstrząs

„OrderName”: „Storybooks”,
„Qty”: 3,
„Cena”: 600,
„Data”: „24-11-2022”,
„Szczegóły”: [„name”: „Kyle”, „Age”: 21, „Phone”: 032367]
,

„OrderName”: „Perfume”,
„Qty”: 1,
„Cena”: 450,
„Data”: „24-11-2022”,
„Szczegóły”: [„name”: „Richard”, „Age”: 28, „Phone”: „8237818”]]
,

„OrderName”: „Watch”,
„Qty”: 1,
„Cena”: 750,
„Szczegóły”: [„name”: „Addy”, „Age”: 34, „Phone”: 419230],
,

„OrderName”: „Bransoletka”,
„Qty”: 2,
„Cena”: 590,
„Data”: „2-11-2022”,
„Szczegóły”: [„name”: „Emily”, „Age”: 19, „Phone”: 2304949]]

])

Gdy dokument jest odpowiednio włożony do kolekcji, otrzymujemy następujące dane wyjściowe z powłoki MongoDB:

Przykład 1: Korzystanie z operatora MongoDB $ o prawdziwej wartości

Gdy $ istnieje operator MongoDB, jest przypisany „prawdziwej” wartości logicznej, zwraca wszystkie dokumenty określonej kolekcji o nazwie tego pola. Tam mamy zapytanie za pomocą operatora $ ESTIS, w którym najpierw określamy nazwę pola „OrderName”. Pole „OrderName” jest ustawione z wyrażeniem $ istnieje: true, w którym operator $ exits jest ustawiony na wartość „true”. Operator $ Exits tutaj identyfikuje dokument zawierający pole „OrderName” w kolekcji.

db.Klient.Znajdź ("orderName": $ istnieje: true).ładny();

Pole „OrderName” istnieje we wszystkich dokumentach kolekcji „Klienta”, która jest zwracana po wykonaniu zapytania.

Przykład 2: Korzystanie z operatora MongoDB $ z fałszywą wartością

Gdy $ istnieje operator powiązany z wartością „fałszywych”, zwraca te dokumenty zawierające dane pole. Teraz wdrażamy zapytanie operatora $ z fałszywą wartością. Najpierw określamy pole „data”. Następnie ustawiamy operator $, który jest równy wartości „fałszywych”. $ Istnieje operator wyszukuje ten dokument, w którym pole „daty” nie jest uwzględnione, ponieważ wartość „fałszywa” jest ustawiona na niego.

db.Klient.Znajdź ("data": $ istnieje: false).ładny();

Gdy zapytanie $ istnieje operator na powłoce, zwraca jeden dokument z polem „dat” nieistniejącego.

Przykład 3: Korzystanie z operatora MongoDB $ z operatorem warunkowym

Jest to przykład operatora $, który jest stosowany w operatorze porównawczym „GT”. Zapytanie jest podawane tam, gdzie mamy nazwę pola „ceny” do zidentyfikowania przez operatora $, a te wartości pola „ceny” są zwracane tylko zgodnie z oświadczeniem porównawczym. Pole „ceny” jest ustawione z podwójnym wyrażeniem. Pierwszym wyrażeniem jest „$ istnieje: prawda”, aby zwrócić dokument powiązany z polem „ceny”. Następnie drugim wyrażeniem jest „$ gt: 550”, które wskazuje na pobrane dokumenty, których wartość cenowa jest większa niż wartość „550”.

db.Klient.Znajdź (cena: $ istnieje: true, $ gt: 550).ładny()

Dokumenty są pobierane jako produkcja, która zawiera pole „ceny”, a wartości „ceny” są większe niż „550”.

Przykład 4: Korzystanie z operatora MongoDB $ dla wielu pól

Ponieważ używamy operatora $ EXT do zidentyfikowania pojedynczego pola, używamy tutaj operatora $ ESTIS dla wielu pól, które ma zostać pobrane z dokumentu. Wewnątrz następującego zapytania określamy pole „Ilty”, które jest ustawione z operatorem $ EXT o prawdziwej wartości. Pole „szczegóły” jest również zdefiniowane, które jest również dostarczane z operatorem $ i wartość w stosunku do niego jest również prawdziwa. Zauważ, że ustawiliśmy operator $ EXT osobno dla każdego określonego pola.

db.Klient.znajdować(
Qty: $ istnieje: true,
Szczegóły: $ istnieje: true
)

Operator $ istnieje zwraca te dokumenty na następującym wyjściu, które zawierają pola „Qty” i „Szczegóły”.

Przykład 5: Korzystanie z operatora MongoDB $ dla pola tablicy

Tutaj ustalamy, czy pole istnieje w danej tablicy dokumentu. Zwróć uwagę na następujące zapytanie. Definiujemy pole tablicy jako „szczegóły.Wiek ”, gdzie„ szczegóły ”to szereg dokumentu, a element pola to„ wiek ”. Operator $ ESTIS jest następnie wdrażany z „prawdziwą” wartością logiczną, która znajduje istnienie pola „Age” z tablicy „szczegółów” dokumentu.

db.Klient.Znajdź (”szczegóły.wiek ": $ istnieje: true)

Wyjście wyświetla dokumenty zawierające pole tablicy „wiek”.

Przykład 6: Korzystanie z operatora MongoDB $ z operatorem $ NIN

Używamy metody $ ESTIS z operatorem porównawczym we wcześniejszym przykładzie. Możemy również użyć tego operatora z innym operatorem, podobnie jak operator $ nin. Po pierwsze, $ istnieje, że pobiera dokumenty w zależności od danego pola. Następnie $ nin generuje dokumenty, które nie zawierają podanych wartości. Poprośmy następujące zapytanie operatora $ wraz z operatorem $ NIN. Podajemy pole „daty”, w którym operator $ jest wykorzystywany z wartością „prawdziwą”. Następnie wartość pola „data” jest następnie definiowana z operatorem $ nin. $ Istnieje operator sprawdza istnienie pola „data”, a operator $ nin wyklucza dokument pobierany z operatora $, którego wartość to „24-11-2022”.

db.Klient.Znajdź (data: $ istnieje: true, $ nin: ["24-11-2022"])

Działanie $ istnieje, a operatorzy $, którzy pobierają dokument z kolekcji, jest na poniższym obrazku:

Wniosek

Operator $ istnieje jest bardzo przydatny, gdy chcemy znaleźć istnienie konkretnego dokumentu w naszym kolekcji. Możemy nawet dołączyć konkretny dokument lub wykluczyć go do wyświetlania w kolekcji MongoDB. Zapewniliśmy przypadki użycia operatora $, aby zademonstrować funkcjonalność tego operatora w MongoDB. Zbadaliśmy istnienie wbudowanych dokumentów za pomocą operatora $ istnieje. Ponadto wykorzystaliśmy operator $ ESTIST z porównaniem i operatorami nin $. Każdy z tych operatorów ma inną współpracę z operatorem $.