Verwenden Sie die Methode findOneAndUpdate() in MongoDB

Tahseen Tauseef 15 Februar 2024
  1. Verwenden Sie die findOneAndUpdate()-Methode in MongoDB
  2. Verwenden Sie die Methode findOneAndUpdate(), um das erste übereinstimmende Dokument zu aktualisieren
  3. Verwenden Sie die Methode findOneAndUpdate(), um den Wert des eingebetteten Dokuments zu aktualisieren
  4. Verwenden Sie die Methode findOneAndUpdate(), um das erste übereinstimmende Dokument zu aktualisieren und das aktualisierte Dokument zurückzugeben
  5. Abschluss
Verwenden Sie die Methode findOneAndUpdate() in MongoDB

Dieser Artikel stellt die Methode findOneAndUpdate() in MongoDB vor. Wir werden diese Methode verwenden, um die ersten übereinstimmenden und eingebetteten Dokumente zu aktualisieren.

Verwenden Sie die findOneAndUpdate()-Methode in MongoDB

Die Methode db.collection.findOneAndUpdate() aktualisiert das passende Dokument der Sammlung nach einem Auswahlkriterium. Diese Methode aktualisiert nur das erste Dokument, das den Auswahlkriterien entspricht, wenn mehr als ein Dokument übereinstimmt.

Der Wert des Felds _id ändert sich nicht, wenn Sie das Dokument aktualisieren.

Diese Methode gibt das Originaldokument zurück; Sie müssen jedoch den Wert des Parameters returnNewDocument auf true setzen, wenn Sie möchten, dass das aktualisierte Dokument zurückgegeben wird.

Sie können diese Methode verwenden, um eingebettete Dokumente zu ersetzen. Dieser Ansatz kann auch bei Transaktionen mit mehreren Dokumenten verwendet werden.

Syntax:

db.collection.findOneAndUpdate(

selection_criteria: <document>,

update_data: <document>,
{
   projection: <document>,

    sort: <document>,

    maxTimeMS: <number>,

    upsert: <boolean>,

    returnNewDocument: <boolean>,

    collation: <document>,

    arrayFilters: [ <filterdocument1>,  ]
})

Parameter:

  1. Der erste Parameter selection_criteria ist das Auswahlkriterium für die Aktualisierung. Der Typ für diesen Parameter ist ein Dokument.
  2. Der zweite Parameter update_data ist ein zu aktualisierendes Dokument. Der Typ für diesen Parameter ist ein Dokument.
  3. Der dritte Parameter ist optional.

Optionale Parameter:

  1. Projektion: Der Typ für diesen Parameter ist ein Dokument. Der Projektionsparameter bestimmt, welche Felder an die übereinstimmenden Dokumente zurückgegeben werden.

    Dieses Dokument nimmt die folgenden Werte an:

    { field1: <boolean>, field2: <boolean> ... }
    

    Wenn der Feldwert 1 oder true ist, zeigt dies an, dass das Feld enthalten ist, und wenn der Feldwert 0 oder false ist, ist das Feld ausgeschlossen.

  1. sortieren: Dies bestimmt, welches Dokument die Operation ändert, wenn die Abfrage mehrere Dokumente auswählt. Die Methode db.collection.findOneAndUpdate() aktualisiert das erste Dokument in der durch dieses Argument angegebenen Sortierreihenfolge.

    Der Typ für diesen Parameter ist ein Dokument.

  2. maxTimeMS: Der Typ dieses Parameters ist Zahl. Es gibt das Zeitlimit in Millisekunden an, innerhalb dessen die Operation abgeschlossen sein muss.

    Es wird ein Fehler zurückgegeben, wenn das Zeitlimit überschritten wird.

  3. upsert: Der Standardwert dieses Parameters ist false.

    Angenommen, der Wert dieser Option ist auf true gesetzt und kein Dokument entspricht der angegebenen Filterabfrage. In diesem Fall erstellt diese Methode ein neues Dokument.

    Es gibt einen null-Wert zurück (nach dem Einfügen eines neuen Dokuments), es sei denn, der Wert der Option returnNewDocument ist auf true. gesetzt. Oder wenn der Wert für diese upsert-Option auf true. gesetzt ist, dann aktualisiert diese Methode das Dokument, das der angegebenen Filterabfrage entspricht.

  4. returnNewDocument: Dieser Parametertyp ist ein boolescher Wert. Standardmäßig gibt diese Methode das Originaldokument zurück.

    Verwenden Sie den Parameter returnNewDocument und setzen Sie seinen Wert auf true, um das aktualisierte Dokument zurückzugeben.

  5. Collation: Gibt die Verwendung der Collation für Operationen an. Es ermöglicht Benutzern, die sprachspezifischen Regeln für den Zeichenfolgenvergleich festzulegen, wie Regeln für Groß- und Kleinschreibung und Akzentzeichen.

    Der Typ für diesen Parameter ist ein Dokument.

  6. arrayFilters: Ein Array von Filterdokumenten gibt an, welche Array-Elemente für eine Aktualisierungsoperation auf einem Array-Feld geändert werden müssen. Der Typ für diesen Parameter ist ein Array.

Es wird das Originaldokument zurückgegeben, aber wenn Sie das aktualisierte Dokument zurückgeben möchten, müssen Sie den Wert des Parameters returnNewDocument auf true setzen.

In den folgenden Beispielen arbeiten Sie mit der folgenden Datenbank. Sie erstellen eine Sammlung namens Studenten mit Dokumenten, die die Details der Studenten enthalten.

Die Datenbank ist unten angegeben:

db={
  "students": [
    {
      id: 1,
      name: "Ali",
      language: "JavaScript",
      score: 82
    },
    {
      id: 2,
      name: "Haris",
      language: "Python",
      score: 91
    },
    {
      id: 3,
      name: "Hamza",
      language: "Python",
      score: {
        "Physics": 84,
        "Math": 85
      }
    }
  ]
}

Verwenden Sie die Methode findOneAndUpdate(), um das erste übereinstimmende Dokument zu aktualisieren

Für dieses Beispiel verwenden Sie die unten angegebene Abfrage:

db.students.findOneAndUpdate({name:"Ali"},{$inc:{score:4}})

Hier aktualisieren Sie das erste übereinstimmende Dokument gemäß den Auswahlkriterien (d. h. name: "Ali") durch ein neues Dokument (d. h. {$inc:{score:4}}). Der Wert des Das Feld score wird um vier erhöht und gibt das Originaldokument zurück.

Ausgang:

findOneAndUpdate() Methode

Nach dem Aktualisieren des Dokuments wird diese Ausgabe zurückgegeben.

Verwenden Sie die Methode findOneAndUpdate(), um den Wert des eingebetteten Dokuments zu aktualisieren

Für dieses Beispiel verwenden Sie die unten angegebene Abfrage:

db.student.findOneAndUpdate({name:"Hamza"},{$inc:{"score.Math":5}})

Hier aktualisieren Sie den Wert des Felds Math im eingebetteten Dokument. Der Wert des Feldes Math wird um fünf erhöht.

Ausgang:

findOneAndUpdate() Methode 2

Verwenden Sie die Methode findOneAndUpdate(), um das erste übereinstimmende Dokument zu aktualisieren und das aktualisierte Dokument zurückzugeben

Für dieses Beispiel verwenden Sie die unten angegebene Abfrage:

 db.student.findOneAndUpdate({name:"Ali"},{$inc:{score:5}},{returnNewDocument:true})

Hier aktualisieren Sie das erste übereinstimmende Dokument gemäß den Auswahlkriterien (d. h. name: "Ali") durch ein neues Dokument (d. h. {$inc:{score:5}}). Der Wert des Punktzahl Feld wird um fünf erhöht.

Es gibt das neu aktualisierte Dokument zurück, weil wir den Wert von returnNewDocument auf true gesetzt haben.

Ausgang:

findOneAndUpdate() Methode 3

Abschluss

Mithilfe dieses MongoDB-Tutorial-Artikels haben Sie gelernt, wie Sie die Methode db.collection.findOneAndUpdate() verwenden, mit der das erste übereinstimmende Dokument in der Sammlung aktualisiert wird, das den Auswahlkriterien entspricht. Sie können diese Methode auch verwenden, um eingebettete Dokumente zu ersetzen, und sie auch in Transaktionen mit mehreren Dokumenten verwenden.

Verwandter Artikel - MongoDB Method