MongoDB Sprawdź, czy dokumenty zawierają pole

MongoDB Sprawdź, czy dokumenty zawierają pole
Witamy w innym samouczku MongoDB.

W tym nauce dowiemy się, jak sprawdzić, czy dokument w danym kolekcji zawiera określone pole za pomocą operatora $. Jeśli to brzmi interesująco, wskoczmy.

Składnia operatora

Zacznijmy od podstaw i omówmy składnię operatora $. Operator przyjmuje stosunkowo prostą składnię, jak pokazano w następującym fragmencie kodu:

pole: $ istnieje:

Operator następnie dopasowuje dokumenty zawierające określone pole, w tym, gdzie wartość wspomnianego pola jest null. Jeśli jednak wartość logiczna jest fałszywa, operator zwraca wszystkie dokumenty, które nie zawierają wspomnianego pola.

Jeśli pochodzisz z baz danych SQL, operator ten nie jest podobny do zapytania w języku SQL.

Praktyczny przykład

Wystarczy teorii. Spójrzmy na praktyczną kolekcję i dowiedz się, jak korzystać z tego operatora do pobierania dokumentów zawierających lub nie zawierających danego pola.

Załóżmy, że mamy kolekcję z następującymi dokumentami:

db.CreateCollection („Pracownicy”)

Następnie możemy dodać przykładowe dane w następujący sposób:

db.pracownicy.wstrząs

„_id”: 1,
„First_name”: „Raymond”,
„Last_name”: „Zanib”,
„Status”: „Active”,
„Wynagrodzenie”: 100000
,

„_id”: 2,
„Full_name”: „Flower Alexandros”,
„Wynagrodzenie”: 110000,
„Status”: „Active”
,

„_id”: 3,
„Full_name”: „Umer McCulloch”,
„Wynagrodzenie”: 109000,
„Języki”: „en”

])

W danym przykładzie mamy trzy dokumenty o różnych polach i wartościach. Dowiedzmy, w jaki sposób mogą pomóc nam zrozumieć operator $.

Pobierz dokumenty w danym polu

Możemy użyć operatora $ ESTIST, aby pobrać wszystkie dokumenty zawierające pole, „Full_name”. Przykładowe żądanie jest takie, jak pokazano następująco:

db.pracownicy.Znajdź („Full_name”: $ istnieje: true)

Ponieważ ustawiamy $ istnieje na true, zapytanie powinno zwrócić tylko dokumenty zawierające określone pole.

Przykładem jest to, jak pokazano:

[[[

_id: 2,
Full_name: „Flower Alexandros”,
Wynagrodzenie: 110000,
Status: „Active”
,

_id: 3,
Full_name: „Umer McCulloch”,
Wynagrodzenie: 109000,
Języki: „en”

]

Jak widzimy, oba zwrócone dokumenty zawierają pole „Full_name”.

Pobierz dokumenty, które nie zawierają określonego pola

Możemy również zrobić odwrotność. W poniższym zapytaniu używamy operatora $ ESTIS, ale zamiast tego ustawiamy wartość na false, umożliwiając dokumentowi zwrócenie dokumentów, które nie zawierają pola ustawionego.

db.pracownicy.Znajdź („Full_name”: $ istnieje: false)

W takim przypadku istnieje tylko jeden dokument, który pasuje do warunku ustawionego.

[[[

_id: 1,
First_name: „Raymond”,
Last_name: „Zanib”,
Status: „Active”,
Wynagrodzenie: 100000

]

Wniosek

Masz to. Funkcjonalność operatora $ jest podzielona na twoje zrozumienie. Bądź na bieżąco z kolejnymi samouczkami.