MongoDB -Ziehen

MongoDB -Ziehen
Arrays gehören zu den häufigsten und nützlichsten Datentypen in der Entwicklung. Sie müssen bei der Arbeit mit MongoDB -Dokumenten auf Array -Werte stoßen.

Es ist daher wichtig, verschiedene Array -Operationen in MongoDB zu verstehen und wie wir sie in Ihren Datenbanken verwenden können.

Für diesen Beitrag werden wir uns auf den MongoDB $ Pull -Operator konzentrieren. Mit diesem Bediener können Sie einen Wert aus einem vorhandenen Array basierend auf der angegebenen Bedingung entfernen.

Operatorsyntax

Das folgende Formular zeigt die Operatorsyntax und die Parameterunterstützung:

$ Pull: :,:,…

Das folgende Verhalten gilt für den $ Pull -Operator in MongoDB -Dokumenten:

  1. Definieren Sie die Bedingung in Array -Elementen, die Dokumente eingebettete Dokumente, der Bediener wendet die angegebene Bedingung für jedes Array -Element als Dokumentsammlung an.
  2. Wenn der angegebene Wert ein Array ist, entfernen der Bediener nur die Elemente in diesem angegebenen Wert, inklusive Bestellung.
  3. Wenn der zu beseitige Wert ein Dokument ist, entfernen der Bediener die Elemente mit exakten Feldern und Werten ausschließlich bestellen.

Lassen Sie uns den $ Pull -Betreiber in einer praktischen Umgebung erkunden.

Praktisches Beispiel

Beginnen wir mit dem Erstellen einer Testsammlung und fügen Sie einige Beispieldokumente hinzu. Sie können die Abfrage wie unten gezeigt verwenden:

db.CreateCollection ("Benutzer")
OK: 1

Beispielaufzeichnungen einfügen.

db.Benutzer.InsertMany ([

_id: 1,
Name: "William",
Abteilung: "Spielentwicklung",
Startyar: 2021,
Unterstützte_Langs: ["C ++", "Java", "C#", "Python"],
Technologien: [

"Docker": wahr,
"Level": "Intermediate"
,

"Ansible": wahr,
"Level": "Anfänger"

],
Land: Vereinigte Staaten",
Gehalt: 160000

]))

Angenommen, wir möchten „Python“ aus dem Array Supported_langs entfernen. Wir können eine Abfrage wie gezeigt ausführen:

db.Benutzer.updatemany (, $ pull: unterstützt_langs: $ in: ["python"])

Dadurch sollte der "Python" -Intrag aus dem Array Supported_lang entfernen. Die resultierende Ausgabe ist wie gezeigt:


"_id": 1.0,
"Name": "William",
"Abteilung": "Spielentwicklung",
"Startyear": 2021.0,
"Supported_langs": [
"C ++",
"Java",
"C#"
],
"Technologien": [

"Docker": wahr,
"Level": "Intermediate"
,

"Ansible": wahr,
"Level": "Anfänger"

],
"Land: Vereinigte Staaten",
"Gehalt": 160000.0

Wir können sehen, dass der Eintrag „Python“ aus dem Dokument entfernt wurde.

Um ein Element aus einer Reihe von Dokumenten zu entfernen, können wir eine Abfrage wie gezeigt ausführen:

db.Benutzer.updatemany (, $ pull: Technologies: "Ansible": true, "Level": "Anfänger")

Der obige Befehl entfernen das Element aus dem Technologies -Array, das zwei Dokumente enthält.

Das resultierende Dokument ist wie gezeigt:

db.Benutzer.finden()

Ausgang:


"_id": 1.0,
"Name": "William",
"Abteilung": "Spielentwicklung",
"Startyear": 2021.0,
"Supported_langs": [
"C ++",
"Java",
"C#"
],
"Technologien": [

"Docker": wahr,
"Level": "Intermediate"

],
"Land: Vereinigte Staaten",
"Gehalt": 160000.0

Aus der obigen Ausgabe können wir das Element mit dem angegebenen Parameter überprüfen, der aus dem Technologies -Array entfernt wurde.

Abschluss

Dieser Artikel deckt die Grundlagen der Arbeit mit dem $ Pull -Operator in MongoDB ab, sodass Sie Elemente aus einem Array in einem bestimmten Dokument entfernen können.