‫-: Willkommen zurück.
‫Ich hoffe, Sie haben bisher Spaß in diesem Abschnitt.
‫Ich weiß, dass ich es bin, und lassen
‫Sie uns jetzt weitermachen und lernen, wie man Dokumente mit Mongodb aktualisiert.
‫Also zurück in unserer Mongoshell verwenden
‫wir jetzt db. Touren. updateOne.
‫Okay?
‫Das ist also ähnlich. insertone, mit dem wir
‫ein neues Dokument erstellt haben.
‫Und denken Sie daran, wie wir auch hatten. insertmany und so
‫haben wir auch . viele aktualisieren.
‫Wie geht es nun. viele Arbeiten aktualisieren?
‫Nun, zuerst müssen wir auswählen,
‫welche Dokumente wir tatsächlich aktualisieren möchten, und zweitens
‫müssen wir die Daten übergeben, die aktualisiert werden sollen.
‫Das erste Argument ist also im Grunde ein
‫Filterobjekt, wie wir es in der letzten Vorlesung gelernt haben.
‫Wir müssen also grundsätzlich nach
‫den Dokumenten fragen, die wir aktualisieren möchten, und beginnen
‫wir damit auf sehr einfache Weise.
‫Also wähle ich einfach nach
‫dem Namen
‫The Snow Adventure.
‫Okay?
‫Das ist also mein sehr einfaches
‫Filterobjekt, das die Tour angibt, die ich aktualisieren möchte. Und nun
‫ist das zweite Objekt,
‫das ich angeben muss, das, was ich tatsächlich aktualisieren möchte.
‫Also noch ein Objekt hier und dann schließen wir die Funktion.
‫Also müssen wir hier den Mengenoperator verwenden.
‫Dies funktioniert also wieder mit Operatoren wie
‫in diesen komplexen Abfragen, die wir im letzten Video gesehen haben.
‫Also setze und dann müssen wir noch ein weiteres Objekt
‫erstellen und schließlich können wir in diesem die Eigenschaft angeben, die wir
‫aktualisieren möchten, und den Wert, auf den wir sie setzen möchten.
‫In diesem Fall
‫möchten wir also den Preis auf 597 festlegen.
‫Gut?
‫Dieser war also 497 und wir erhöhen ihn
‫jetzt im Grunde auf 597.
‫Gut?
‫Also lass uns zurück drücken und dann ist unsere Tour aktualisiert.
‫Nun, wenn diese Abfrage hier
‫mehrere Dokumente gefunden hätte.
‫Ich kann es aus irgendeinem Grund nicht auswählen,
‫aber Sie können es sehen.
‫Wenn also diese Abfrage, die
‫wir hier durchgeführt haben, mehrere Dokumente ausgewählt hätte, wäre
‫nur das erste aktualisiert worden, da wir
‫verwendet haben. updatemain.
‫Wenn wir also bereits im Voraus wissen, dass
‫unsere Abfrage mit mehreren Dokumenten übereinstimmen wird, sollten
‫wir . updatemany und
‫nicht. updateone.
‫Okay?
‫Um Ihnen jetzt zu zeigen, dass
‫es tatsächlich funktioniert hat, werfen wir einen Blick auf alle Dokumente.
‫Also db. Touren. finden und tatsächlich haben
‫wir hier The Snow Adventure
‫zum neuen Preis.
‫Groß.
‫Also haben wir eine bereits vorhandene Immobilie aktualisiert.
‫Der Preis war also schon da und
‫wir setzen ihn einfach auf einen neuen Wert, aber wir
‫können natürlich auch neue Eigenschaften anlegen und diese auf neue Werte setzen.
‫Und es funktioniert tatsächlich genauso, aber ich
‫zeige es Ihnen trotzdem.
‫Und ich möchte hier Premium-Touren finden
‫und ihnen ein Premium-Feld auf true setzen.
‫Was sind unsere Premium-Touren?
‫Nun, lassen Sie uns zuerst eine Suche machen.
‫Also nur um diese Abfrage zu spezifizieren.
‫Und das haben wir eigentlich schon früher gemacht.
‫Die Touren, die ich möchte, sollten also einen Preis von mehr als 500 und
‫eine Bewertung von größer oder gleich 4 haben. 8.
‫Dies sind im Grunde also unsere
‫Premium-Touren, die am teuersten und am
‫besten bewertet sind.
‫Diese Abfrage zu erstellen ist eigentlich ganz einfach.
‫Und noch einmal, weil wir es eigentlich schon früher gemacht haben.
‫Jetzt möchte ich, dass Sie das Video anhalten
‫und diese Abfrage selbst
‫eingeben, selbst wenn Sie sich daran erinnern.
‫Und wenn Sie sich nicht daran erinnern, ist das noch
‫besser, wenn Sie das gerade im letzten
‫Video gelernte üben können.
‫Gut?
‫Bitte pausieren Sie das Video hier und versuchen
‫Sie, diese Abfrage selbst zu erstellen.
‫Wir möchten also wieder, dass der Preis größer als 500 und
‫die Bewertung größer oder gleich 4 ist. 8.
‫Okay, ich hoffe du hast es geschafft.
‫Und das ist die Lösung.
‫Der Preis sollte also größer oder gleich 500 sein und die Bewertung
‫sollte größer oder gleich 4 sein. 8.
‫Okay?
‫Und hier setzen wir eben größer als
‫das eigentlich gleich ist.
‫Es wird uns das gleiche Ergebnis liefern.
‫Aber egal, machen wir es genau so, wie ich es gesagt habe.
‫Um sicher zu gehen, sehen wir also, ob
‫wir das perfekte Ergebnis erzielen und tatsächlich ist
‫dies die Tour, die diesen Premium-Preis und gleichzeitig diese
‫Premium-Bewertung hat.
‫Okay?
‫Und in diesem Fall haben wir nur ein Ergebnis,
‫aber natürlich können wir mehrere Ergebnisse haben.
‫Und so verwenden wir jetzt . viele aktualisieren.
‫Also db. Touren. viele aktualisieren.
‫Und so ist unser Filterobjekt, das wir wollen, dieses.
‫Also kopiere ich es einfach von hier.
‫Das ist also das erste Argument
‫und dann das zweite, was wir eigentlich aktualisieren wollen.
‫Erinnere dich daran?
‫Also verwenden wir wieder den Mengenoperator
‫und sagen dann, dass wir Premium wahr machen wollen.
‫Okay?
‫Und so erstellen wir diesmal tatsächlich ein neues Feld
‫hier und setzen es auf true.
‫Okay?
‫Speichern Sie das und tatsächlich haben wir eine schließende
‫Klammer vermisst und können daher nicht wirklich zurückgehen, also lassen
‫Sie mich versuchen, es hier hinzuzufügen.
‫Aber das funktioniert nicht wirklich, aber egal,
‫wir können einfach zum letzten Befehl
‫zurückkehren und ihn dann korrigieren.
‫Das ist also die Klammer, die uns gefehlt hat,
‫dann schließe sie und los gehts.
‫Also db. Touren. nur um es jetzt zu überprüfen.
‫Und hier haben wir den letzten, bei dem
‫jetzt Premium auf True gesetzt ist.
‫Und wieder war dies das einzige
‫Dokument, das unserer Abfrage entsprach, und daher ist es das
‫einzige, das
‫diese neue Premium-Eigenschaft hier erhalten hat, aber
‫wenn mehrere Dokumente dieser Abfrage entsprechen, hätten alle
‫diese Prämie wahr gemacht.
‫Okay?
‫Deshalb haben wir . updatemany und denken
‫Sie daran, wenn wir . updateone dann wird
‫nur das erste Dokument aktualisiert, das der Abfrage entspricht.
‫Okay?
‫So aktualisieren wir Dokumente zumindest teilweise mit
‫diesem . updateviele oder . updateone aktualisieren wir
‫in der Regel nur Teile des Dokuments, können
‫aber auch den Inhalt des Dokuments komplett ersetzen.
‫Und dafür verwenden wir . ersetzen.
‫Das werde ich nicht tun, aber
‫der Vollständigkeit halber wollte ich es euch auch zeigen.
‫Also db. Touren. Ersetzen oder . viele ersetzen, okay?
‫Und so würden Sie hier wie zuvor
‫die Suchanfrage übergeben und dann neue Daten, die Sie
‫in dieses Dokument einfügen möchten.
‫Okay, das werde ich hier nicht tun.
‫Aber jetzt wissen Sie, dass es sie auch gibt.
‫Und so haben wir drei unserer korrekten
‫Operationen bereits abgeschlossen.
‫So erstellen, lesen und aktualisieren und wie Sie im
‫nächsten Video erraten können, werden wir über das
‫Löschen von Dokumenten sprechen.