MongoDB $ First- und $ Firstn -Betreiber

MongoDB $ First- und $ Firstn -Betreiber

Die $ First- und $ Firstn -Operatoren sind die Aggregation Pipeline -Methode von MongoDB. Mit dem $ First Aggregationsoperator können wir den ersten Wert in einem Array ermitteln. Der $ First -Operator nimmt das Array nur als Eingabeparameter. Der $ Firstn -Betreiber gibt eine voreingestellte Anzahl von Einträgen aus dem Startindex eines Arrays zurück. Die Zahl, die dem $ FirstN -Bediener angegeben ist, kann nicht weniger als „1“ sein. Darüber hinaus gibt der $ FirstN -Operator das Original -Array an, wenn die definierte Zahl größer oder gleich den Werten des Arrays ist.

So verwenden Sie die $ First- und $ FirstN -Betreiber in MongoDB

Die $ First- und $ Firstn -Betreiber werden in MongoDB verwendet, um die erforderliche Anzahl von Elementen aus dem Array von Dokumenten zu erhalten. Die $ First- und $ FirstN -Betreiber lösen die Array -Felder in den Dokumenten der MongoDB -Sammlung nur auf. Wir arbeiten mit der Kollektion „FoodItems“ in diesem MongoDB -Artikel zusammen. Wir fügen die Dokumente in der Kollektion „FoodItems“ hinzu, die auch das Array -Feld enthalten, auf dem die First- und $ FirstN -Bediener der ersten und $ Firstn -Betreiber fungiert. Der Befehl zum Hinzufügen der Dokumente wird hier dargestellt, bei dem die InsertMany () -Methode für die Einfügung gleichzeitig verwendet wird.

db.Nahrungsmittel.InsertMany ([

"_id": 1,
"Name": "Früchte",
"Liste": ["Apple", "Mango", "Cherry", "Kiwi"],
"Preis": 350
,

"_id": 2,
"Name": "Gemüse",
"Liste": ["Rote Beete", "Radich", "Rübe", "Karotte."]],
"Preis": 255
,

"_id": 3,
"Name": "Snack Food",
"List": ["Popcorn", "gesalzene Erdnüsse", "Pommes", "Baked Sweets", "Chocolates"],
"Preis": 400
,

"_id": 4,
"Name": "Getränke",
"Liste": ["Lemonade", "Milchshake", "Eced Tea", "Kaffee", "Wasser", "heiße Schokolade"],
"Preis": 550
,
"_id": 5,
"Name": "Meeresfutter",
"Liste": null,
"Preis": 300

]))

Nun werden die Ergebnisse beim Einfügen der Dokumente im Folgenden angezeigt, die „wahr“ bestätigen und angeben, dass alle Dokumente ohne Fehler in der angegebenen Sammlung eingefügt werden:


Anerkannt: wahr,
InsertDIDs: '0': 1, '1': 2, '2': 3, '3': 4, '4': 5

Beispiel 1: Verwenden des MongoDB $ First -Operators, um den ersten Wert des Arrays zu erhalten

Wie wir bereits erläutert haben, sammelt der $ First Operator das erste Element aus dem Feld Array des angegebenen Dokuments. Im Beispiel verwenden wir den $ First Operator von MongoDB, um den ersten Array -Feldwert aus allen Dokumenten abzurufen, die in die Kollektion „FoodItems“ eingefügt wurden. Wir stellen den aggregierten Befehl bereit, bei dem der $ -Projektbetreiber angegeben ist. Der $ Project -Operator fügt das neue Feld "FirstItem" hinzu, das den ersten Operator $ zusammen mit dem Ausdruck hat. Der $ First Operator nimmt den Namen des Felds „$ List“ an, um das erste Element zu erhalten.

db.Nahrungsmittel.Aggregat([

$ project:
"Erster Gegenstand":
$ zuerst: "$ list"



]))

Wir können sehen, dass der $ First -Operator den ersten Wert aus dem Array „$ list“ aller Dokumente zurückgibt.

[
_id: 1, FirstItem: 'Apple',
_id: 2, firstItem: 'reb Beete',
_id: 3, FirstItem: 'Popcorn',
_id: 4, FirstItem: 'Lemonade',
_id: 5, firstItem: null
]

Beispiel 2: Verwenden des MongoDB $ First -Operators für den ungültigen Operanden

Wir wissen, dass der $ First -Operator nur die Arrays behandelt. Der erste Betreiber von $ entsteht jedoch aus der Bereitstellung eines ungültigen Operanden. Hier haben wir ein Beispiel dafür, dass wir einen ungültigen Operanden im $ First -Betreiber geben, um die Erwartung zu erhöhen. Wir verwenden dieselbe Abfrage wie im vorherigen Beispiel, aber der Unterschied liegt im $ First Operator, bei dem der Ausdruck geändert wird. Anstatt das Feld Array aus den Dokumenten zu geben, geben wir das Feld „$ price“ ein, das die Array -Elemente nicht enthält. Wenn die Abfrage ausgeführt wird, wird der Fehler generiert.

db.Nahrungsmittel.Aggregat([

$ project:
"Artikel":
$ zuerst: "$ preis"



]))

Der folgende MongoDB -Fehler tritt auf, da das Feld $ Preis kein Array ist. Der $ First -Operator in MongoDB befasst sich nur mit den Arrays, wie im folgenden Fehler erwähnt:

MongoServerError: Planexecutor -Fehler während der Aggregation :: verursacht durch: $ Firsts Argument muss ein Array sein, ist aber int int

Beispiel 3: Verwenden des MongoDB $ First -Operators für die fehlenden und Nullwerte des Arrays

Der $ First Operator gibt NULL zurück, wenn das Argument ein Leer -Array -Feld oder ein fehlendes Array -Feld ist. Wir stimmen mit dem Dokument überein, das den Wert "_id" "5" enthält, da es das Null -Array -Element enthält. Danach haben wir den $ First -Betreiber im Feld "FirstListValue" $ Project Operator, "FirstListValue", festgelegt. Der $ First -Operator hat das Feld "$ list" -Array, um seinen ersten Artikel zu erhalten.

db.Nahrungsmittel.Aggregat([
$ Match: "_id": 5,
$ project:
"FirstListValue":
$ zuerst: "$ list"



]))

Wie wir im Dokument „_id: 5“ gesehen haben, enthält das Feld $ List Array den Nullwert. Wenn der vorherige $ First -Operator in der Shell ausgeführt wird, gibt er den Nullwert an.

[_id: 5, firstlistValue: null]

Beispiel 4: Verwenden des MongoDB $ Firstn -Operators für die n -ten Werte des Arrays

Jetzt holen wir die erforderliche Anzahl von Elementen aus dem Array -Feld. Dafür haben wir den $ FirstN -Betreiber, dessen Implementierung sich etwas vom $ First -Operator unterscheidet, basierend auf der Funktionalität. Dort definieren wir den Ausdruck „_id: 3“ im $ Match -Operator, um dem Dokument mit diesem Ausdruck zu entsprechen. Dann haben wir ein neues Feld "FirstListValue", das im $ Project -Operator enthalten ist. Das neue Feld "FirstListValue" wird mit dem $ FirstN -Operator verwendet, in dem die Argumente „Input“ und „N“ festgelegt werden. Das Argument „Eingabe“ enthält den Namen des Felds „$ lists“ -Array. Das Argument „N“ hat den Ganzzahlwert von „2“, der die Anzahl der Elemente angibt, die aus dem Feld des bereitgestellten Arrays abgerufen werden.

db.Nahrungsmittel.Aggregat([
$ Match: "_id": 3,
$ project:
"FirstListValue":
$ firstn: Eingabe: "$ list", n: 2



]))

Wir haben zwei Elemente aus dem folgenden "$ List" -Array erhalten, da die Nummer dem $ FirstN -Bediener angegeben ist:

[_id: 3, firstlistValue: ['Popcorn', 'gesalzene Erdnüsse']]

Beispiel 5: Verwenden des MongoDB $ First -Operators für den n -ten Wert eines Arrays mit der Bedingung

Zusätzlich kann das „N“ -Argument des $ FirstN -Operators mit einem Wert dynamisch zugeordnet werden. Der Parameter „N“ hat eine bedingte Anweisung, die damit zugeordnet ist, die es informiert, um das angegebene Element aus dem Array abzurufen, wenn die Bedingung erfüllt ist. Betrachten Sie den folgenden Befehl des $ FirstN -Operators. Wir stellen dem $ Match -Operator das Dokument "_id: 2" zur. Danach fügen wir das Feld "FirstListValue" in den $ Project -Operator ein. Als nächst.

Der "Eingang" ist der erste Parameter, der im $ FirstN -Operator mit dem Feld "$ list" festgelegt wurde. Anschließend wird der Parameter „N“ mit dem $ Cond-Operator angegeben, der den IF-ELSE-Zustand festlegt. In der „if“ haben wir eine andere Bedingung, die "$ gt: [" $ price ", 550]" ist ". Wenn der $ -Preis höher als der Wert von „550“ ist, wird das „1“ -Element abgerufen. Andernfalls zeigt die Option „else“ „3“ Elemente an.

db.Nahrungsmittel.Aggregat([
$ Match: _id: 2,
$ project:
"FirstListValue":
$ Firstn: Eingabe: "$ list",
N: $ cond: if: $ gt: ["$ price", 550], dann: 1, sonst: 3




]))

Der $ FirstN -Bediener gibt drei Elemente des $ -Listen -Arrays aus, da der Preis von $ "350" des angegebenen Dokuments ist, das nicht größer ist als der angegebene Wert.

[oder

Abschluss

In diesem Artikel wurde der MongoDB $ First und die $ FirstN -Betreiber untersucht. Erstens werden die Beispiele für First Operator $ mit den verschiedenen Fällen zur Verfügung gestellt. Das Beispiel des $ First -Operators erhielt den ersten Wert des Arrays. Dann gibt der $ First -Operator den Nullwert zurück, da das Array -Feld den fehlenden Wert hat. Danach wird das Beispiel für den ersten Operator -Ausnahme von $ für ein ungültiges Argument angegeben. Der $ Firstn -Operator wird angegeben, um die n -ten Elemente aus dem Array zu sammeln. Darüber hinaus sammelt der $ Firstn -Operator die Elemente basierend auf der Bedingung, die dem Parameter „N“ angegeben ist.