MongoDB $ existiert Abfrage

MongoDB $ existiert Abfrage

Der MongoDB $ existiert dem Bediener dem Benutzer, die Dokumente aus einer Sammlung zu erhalten, unabhängig davon, ob ein relevantes Feld vorhanden ist oder nicht. Der $ existiert Operator nimmt nur den booleschen Parameter, der wahr oder falsch sein kann. Der angegebene tatsächliche Wert für den $ existiert Operator gibt das übereinstimmende Dokument zurück, das das angegebene Feld enthält, auch wenn der Feldwert null ist. Andererseits werden die Dokumente, die das angegebene Feld nicht enthalten.

Wie arbeitet der $ existiert, Operator arbeitet in MongoDB??

Der $ existierende Bediener wird im angegebenen Feldnamen verwendet. Der Feldname ist in der Find () -Methode definiert. Anschließend wird der angegebene Feldname weiter festgelegt, wenn der Ausdruck des $ existierenden Operators existiert. Die folgende Syntax wird für ein besseres Verständnis bereitgestellt:

db.Sammlung.find (field_name: $ existieren: boolean_value).

Bevor Sie mit der Verwendung des $ exists -Operators beginnen. Wir verwenden die Kollektion „Kunden“ für den $ existierenden Bediener und fügen das folgende Dokument in diese Sammlung mit der Methode InsertMany () ein.

db.Kunde.InsertMany ([

"OrderName": "Storybooks",
"Qty": 3,
"Preis": 600,
"Datum": "24-11-2022",
"Details": ["Name": "Kyle", "Alter": 21, "Telefon": 032367]
,

"OrderName": "Parfüm",
"Qty": 1,
"Preis": 450,
"Datum": "24-11-2022",
"Details": ["Name": "Richard", "Alter": 28, "Telefon": "8237818"]
,

"OrderName": "Uhr",
"Qty": 1,
"Preis": 750,
"Details": ["Name": "Addy", "Age": 34, "Telefon": 419230],
,

"OrderName": "Armband",
"Qty": 2,
"Preis": 590,
"Datum": "2-11-2022",
"Details": ["Name": "Emily", "Age": 19, "Telefon": 2304949]

]))

Wenn das Dokument ordnungsgemäß in die Sammlung eingefügt wird, erhalten wir die folgende Ausgabe von der MongoDB -Shell:

Beispiel 1: Die Verwendung des MongoDB $ existiert Operator mit wahrem Wert

Wenn der $ existierende Operator von MongoDB mit dem „wahren“ booleschen Wert zugeordnet ist, gibt es alle Dokumente der angegebenen Sammlung mit diesem Feldnamen zurück. Dort haben wir eine Abfrage mit dem $ existierenden Operator, in dem wir zum ersten Mal den Feld "OrderName" angeben. Das Feld „OrderName“ wird mit dem $ existiert: True Ausdruck, bei dem der $ ausgabbetreiber mit dem Wert „True“ festgelegt wird. Der $greifer ausgeht hier das Dokument, das das Feld "OrderName" in der Sammlung enthält.

db.Kunde.find ("orderName": $ existiert: true).hübsch();

Das Feld „OrderName“ existiert in allen Dokumenten der Sammlung „Kunden“, die nach der Ausführung der Abfrage zurückgegeben werden.

Beispiel 2: Die Verwendung des MongoDB $ existiert Operator mit einem falschen Wert

Wenn der $ existierende Operator mit dem „falschen“ Wert zugeordnet ist, gibt es die Dokumente zurück, die das angegebene Feld enthalten. Jetzt implementieren wir die Abfrage des $ existierenden Operators mit dem falschen Wert. Wir geben zunächst das Feld „Datum“ an. Dann setzen wir den $ existierenden Operator, der dem „falschen“ Wert entspricht. Der $ existiert Operator sucht nach diesem Dokument, in dem das Feld „Datum“ nicht enthalten ist, da der "falsche" Wert dagegen festgelegt wird.

db.Kunde.find ("Datum": $ existiert: false).hübsch();

Wenn die Anfrage des $ existierenden Operators auf der Shell ausgeführt wird.

Beispiel 3: Die Verwendung des MongoDB $ existiert Operator mit dem Bedingungsbetreiber

Dies ist ein Beispiel für den $ existierenden Betreiber, der mit dem GT -Vergleichsbetreiber verwendet wird. Die Abfrage wird gegeben. Das Feld "Preis" wird mit dem doppelten Ausdruck festgelegt. Der erste Ausdruck ist der „$ existiert: true“, um das Dokument zurückzugeben, das dem Feld „Preis“ zugeordnet ist. Anschließend ist der zweite Ausdruck der „$ GT: 550“, der die abgerufenen Dokumente anzeigt, deren Preiswert größer ist als der Wert „550“.

db.Kunde.find (Preis: $ existiert: true, $ gt: 550).hübsch()

Die Dokumente werden als Ausgabe abgerufen, die das Feld „Preis“ enthält, und die "Preis" -Werte sind größer als "550".

Beispiel 4: Die Verwendung des MongoDB $ existiert Operator für mehrere Felder

Wenn wir den $ existierbetreiber für das zu identifizierende einzelne Feld verwenden, verwenden wir hier den $ exists -Operator, damit die mehreren Felder aus dem Dokument abgerufen werden sollen. In der folgenden Abfrage geben wir das Feld „Qty“ an, das mit dem $ existierenden Operator mit dem wahren Wert festgelegt ist. Das Feld „Details“ ist ebenfalls definiert, das auch mit dem $ existierenden Operator versehen ist, und der Wert dagegen ist ebenfalls wahr. Beachten Sie, dass wir den $ existierenden Operator für jedes angegebene Feld separat festlegen.

db.Kunde.finden(
Qty: $ existiert: true,
Details: $ existiert: true
)

Der $ existiert den Betreiber gibt diese Dokumente in der folgenden Ausgabe zurück, die die Felder "Qty" und "Details" enthält.

Beispiel 5: Die Verwendung des MongoDB $ existiert Operator für das Array -Feld

Hier bestimmen wir, ob im angegebenen Array des Dokuments ein Feld vorhanden ist oder nicht. Beachten Sie die folgende Anfrage. Wir definieren das Array -Feld als „Details.Alter “, bei dem„ Details “das Array des Dokuments und das Feldelement das„ Alter “ist. Der $ existierende Betreiber wird dann mit dem „wahren“ Booleschen Wert implementiert, der die Existenz des Felds „Alter“ aus dem "Details" -Array des Dokuments feststellt.

db.Kunde.Finden Sie ("Details.Alter ": $ existiert: true)

Die Ausgabe zeigt die Dokumente an, die das Feld „Alter“ -Array enthalten.

Beispiel 6: Die Verwendung des MongoDB $ existiert Operator mit $ Nin -Operator

Wir verwenden die $ exists -Methode mit dem Vergleichsoperator im früheren Beispiel. Wir können diesen Bediener auch mit einem anderen Bediener wie dem $ Nin -Bediener verwenden. Erstens ruft die $ exists die Dokumente ab, abhängig vom angegebenen Feld. Dann generiert $ nin die Dokumente, die die angegebenen Werte nicht enthalten. Lassen Sie uns die folgende Anfrage des $ existierenden Operators zusammen mit dem $ Nin -Operator haben. Wir geben ein "Datum" -Feld, in dem der $ existierende Bediener mit dem "wahren" Wert verwendet wird. Dann wird der Wert des Feldes „Datum“ dann mit dem $ Nin -Operator definiert. Der $ existiert, der Betreiber überprüft das Bestehen des Feldes „Datum“, und der Operator $ Nin schließt das Dokument aus, das aus dem $ existierenden Betreiber abgerufen wird, dessen Wert „24-11-2022“ ist, der „24-11-2022“ ist.

db.Kunde.find (Datum: $ existiert: true, $ nin: ["24-11-2022"])

Die Arbeit des $ existiert und die $ nin -Operatoren, die das Dokument aus der Sammlung abrufen, befindet sich im folgenden Bild:

Abschluss

Der $ existiert Operator ist sehr nützlich, wenn wir die Existenz eines bestimmten Dokuments in unserer Sammlung finden möchten. Wir können sogar das spezifische Dokument einfügen oder ausschließen, die in der MongoDB -Sammlung angezeigt werden sollen. Wir haben die Anwendungsfälle des $ existierenden Operators zur Verfügung gestellt, um die Funktionalität dieses Operators in MongoDB zu demonstrieren. Wir untersuchten die Existenz von eingebetteten Dokumenten mit dem $ exists operator. Darüber hinaus verwendeten wir den $ existierenden Operator mit dem Vergleich und $ Nin -Operatoren. Jeder dieser Betreiber hat eine andere Arbeit mit dem $ exists -Operator.