MongoDB -Projektion

MongoDB -Projektion
Mit der Projektionsfunktion von MongoDB können wir nur die erforderlichen Daten aus einem Dokument und nicht die gesamte Datenerfassung extrahieren. Die Projektion verwendet die Find () -Methode, bei der die Felder so ausdrücklich zurückgegeben und mit einem Wert von „1“ oder „0“ zurückgegeben und angehängt werden. Wenn ein Projektionsparameter einen Wert von 1 hat, werden die Dokumente basierend auf der Suche angezeigt. Und um ein Feld zu verschwinden, gibt der Projektionsparameter den Wert "0" ein. Die Projektion ist ein wichtiger Faktor bei der Identifizierung von benutzerspezifischen Daten in einer bestimmten Datenerfassung.

Wie verwenden Sie Projektion, um die erforderlichen Daten in MongoDB anzuzeigen??

Die MongoDB -Projektion basiert auf der aktuellen Find () -Methode. Daher können wir jede Projektionsabfrage angeben, die signifikante Änderungen an der aktuellen Find () -Methode erfordern. Die Art und Weise, wie die Projektion in MongoDB verwendet wird, ist wie folgt: "Find (, " field_name ":" value ")". Die Projektionssyntax in MongoDB ist die gleiche wie die Find () -Methode, aber wir fügen eine Reihe von Argumenten in die Find () -Methode hinzu. Dieser Argumentsatz benachrichtigt die MongoDB -Instanz, in welchem ​​Datenfeld zurückgegeben werden sollen. Wir haben die Kollektion „Kuchen“ verwendet, in der die MongoDB -Projektion implementiert wird. Aber dafür müssen wir dieser Sammlung Dokumente hinzufügen. Wir haben die InsertMany () -Methode des MongoDB zum Einsetzen des Dokuments verwendet. Die Abfrage zum Einfügen der Dokumente in die Kuchensammlung lautet wie folgt:

db.Kuchen.InsertMany ([

"_id": 0,
"Name": "Apfelkuchen",
"Kalorien": 90.06,
"Pfund": 2,
"Preis": 540,
"Status": "Verfügbar",
"Topping": [JellyPrice: 50, SprinklePrice: 90, FrostedPrice: 90]
,

"_id": 1,
"Name": "Schokoladenkuchen",
"Kalorien": 150.00,
"Pfund": 1,
"Preis": 600,
"Status": "Verfügbar",
"Topping": [JellyPrice: 50, SprinklePrice: 90, FrostedPrice: 90]
,

"_id": 2,
"Name": "Eiskuchen",
"Kalorien": 102.56,
"Pfund": 3,
"Preis": 640,
"Status": "Nicht verfügbar",
"Topping": [JellyPrice: 50, SprinklePrice: 90, FrostedPrice: 90]
,

"_id": 3,
"Name": "Kaffeekuchen",
"Kalorien": 180.41,
"Pfund": 2,
"Preis": 720,
"Status": "Verfügbar",
"Topping": [JellyPrice: 50, SprinklePrice: 90, FrostedPrice: 90]

]))

Hier haben wir das im Bild gezeigte Dokument erfolgreich eingefügt, um die Projektionstechnik zu verwenden.

Beispiel Nr. 1: MongoDB -Projektion für das angegebene Feld.

Hier haben wir nur das einzelne Feld abgerufen, indem wir den Projektparameter an die Find () -Methode übergeben haben. Wir haben die folgende Abfrage, bei der die Find () -Methode die leeren Auswahlkriterien und den Projektionsparameter nimmt. Der Projektionsparameter gibt das Feld „Name“ ein, das mit dem numerischen Wert „1“ zugewiesen ist, um nur dieses Feld als Ausgabe anzuzeigen. Die _id wird mit dem Wert "0" festgelegt, da die Methode find () immer das Feld _id in der Ausgabe zurückgibt.

db.Kuchen.find (, name: 1, _id: 0)

Alle Dokumente sind unten angezeigt, jedoch nur mit einem einzigen Feld „Name“ zusammen mit seinem entsprechenden Wert, da die Projektion auf dieses Feld angewendet wird.

Beispiel Nr. 2: MongoDB -Projektion für mehrere Felder.

Jetzt geben wir die mehreren Felder für den Projektionsparameter der Find () -Methode an, um die Daten nur für diese Felder aus den Dokumenten anzuzeigen. Hier haben wir eine Projektionsabfrage, die mit dem Feld "Name" und "Kalorien" festgelegt ist. Da diesen Feldern der Wert „1“ zugewiesen wird, der angibt, dass die Daten nur dieser Felder beim Ausführen der Projektionsabfrage abgerufen werden.

db.Kuchen.find (, "_id": 0, "name": 1, "Kalorien": 1)

Daher haben wir die Daten nur der Felder, die als Projektionsparameter festgelegt werden, erfolgreich abgerufen.

Beispiel Nr. 3: MongoDB -Projektion für den angegebenen Zustand.

Wir haben die Projektionsanweisung im oben genannten Beispiel ohne Auswahlkriterien gegeben. Jetzt verwenden wir die Projektionsanweisung zusammen mit der Bedingung. In der folgenden Projektionsabfrage haben wir die Find () -Methode verwendet, bei der wir zuerst die Auswahlkriterien festgelegt haben, dass der Feld „Status“ dem Wert „verfügbar“ entspricht. Dann geben wir die Felder "Pfund" und "Preis" als Projektionsparameter mit dem Wert "1" ein. In diesen Feldern wurden nur die Daten der Dokumente angezeigt, die den Zustand "Status:" verfügbar "erfüllten.

db.Kuchen.finden(
Status: "verfügbar",
"Pfund": 1, "Preis": 1
)

Wir haben nur drei Dokumente, deren Status „verfügbar“ ist, die in der Ausgabe mit den als Projektion festgelegten Feldern angezeigt werden.

Beispiel Nr. 4: MongoDB -Projektion für das angegebene Feld mit Ausnahme von ausgeschlossenen Feldern.

In dieser Projektionsabfrage haben wir die Felder mit dem Wert „0“ gekennzeichnet, um sie aus dem zurückgegebenen Dokument auszuschließen. Wir haben die Find () -Methode bereitgestellt, wobei der Ausdruck „Status: verfügbar“ und die Reihe von Projektionsargumenten angegeben sind. Der Projektionsparameter hat die Felder "Status" und "Preis" mit dem Wert "0" bereitgestellt. Der Wert „0“ zeigt an, dass diese Felder nicht angezeigt werden, wenn das Dokument der angegebenen Kriterien zurückgegeben wird.

db.Kuchen.find (Status: "verfügbar", Status: 0, Preis: 0)

Die Felder, deren Status in den Dokumenten „verfügbar“ ist.

Beispiel Nr. 5: MongoDB -Projektionsoperator "$ Slice".

Die Projektionsabfrage optimiert die Suche und reduziert den Workflow, wenn ihre Betreiber genutzt werden. Wir haben mehrere Betreiber von Projektionsanfragen, aus denen wir den $ Slice -Operator in diesem Beispiel verwendet haben. Der $ Slice -Betreiber begrenzt die Anzahl der als Ausgabe der Projektionsabfrage zurückgegebenen Dokumente. Hier haben wir eine Projektionsanfrage des $ Slice -Operators. Wir haben die Find () -Methode aufgerufen, die zuerst mit dem leeren Parameter definiert ist, bei dem der Zustand eingestellt ist. Als nächstes haben wir die Find () -Methode mit dem Projektionsparameter festgelegt. Der Projektionsparameter wird mit der Anweisung "Pfund: $ Slice: 3" angegeben. Das Feld „Pfund“ verwendet den $ Slice -Operator, der mit dem Wert „3“ festgelegt ist, um die in der Ausgabe zurückgegebenen Dokumente zu begrenzen.

db.Kuchen.find (, Pfund: $ Slice: 3)

Das folgende Bild zeigte nur drei Dokumente in der Ausgabe, da der $ Slice -Operator der Projektionsanweisung es um einen bestimmten Wert beschränkt.

Beispiel Nr. 6: MongoDB -Projektionsbetreiber "$ elematch".

Jetzt haben wir einen anderen Projektionsbetreiber "$ elematch" verwendet. Der $ Elemmatch -Betreiber projiziert den ersten übereinstimmenden Wert aus einem Array. Die Ausdrücke von $ text -Abfragen werden nicht von der $ Elemmatch des Projektionsbetreibers unterstützt. Darüber hinaus ist für den $ Elemmatch -Projektionsbetreiber der explizite Zustand erforderlich. Wir haben eine Projektionsabfrage festgelegt, bei der die Auswahlkriterien zuerst der Find () -Methode zugeordnet werden und die Projektion implementiert ist. Für den Projektionsparameter haben wir das Feld „Topping“ bereitgestellt. Das Feld "Topping" hat den $ Elematch -Operator, in dem die Bedingung "Sprinkleprice": 90 zugewiesen ist, um den Elementen aus dem Array zu entsprechen.

db.Kuchen.find ("name": "ice kake", topping: $ elemmatch: "SprinklePrice": 90)

Dies sind die Dokumente, die wir nach dem $ Elematch -Operator der Projektionsabfrage in der Ausgabe abgerufen haben.

Abschluss

Die Anleitung untersuchte die Funktionalität der MongoDB -Projektion. Die MongoDB -Projektion bezieht sich auf das Sammeln nur die relevanten Daten und nicht auf den gesamten Datensatz eines Dokuments. Wir haben gelernt, wie man mit der Projektionsabfrage die erforderlichen Daten aus der angegebenen Sammlung erfasst. Wir haben mehrere Projektionsanfragen ausgeführt, um die spezifischen Felder mit den Werten „1“ und „0“ einzuschließen und auszuschließen. Darüber hinaus haben wir die Projektionsbetreiber "$ Slice" und "$ elematch" in der Projektionsanfrage verwendet.