MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Hängen Sie eine Zeichenfolge an das Ende eines vorhandenen Felds in MongoDB an

Starten von Mongo 4.2 , db.collection.update() kann eine Aggregationspipeline akzeptieren und schließlich die Aktualisierung eines Felds auf der Grundlage seines aktuellen Werts ermöglichen:

// { a: "Hello" }
db.collection.update(
  {},
  [{ $set: { a: { $concat: [ "$a", "World" ] } } }],
  { multi: true }
)
// { a: "HelloWorld" }
  • Der erste Teil {} ist die Übereinstimmungsabfrage, die filtert, welche Dokumente aktualisiert werden sollen (in diesem Fall alle Dokumente).

  • Der zweite Teil [{ $set: { a: { $concat: [ "$a", "World" ] } } }] ist die Update-Aggregationspipeline (beachten Sie die eckigen Klammern, die die Verwendung einer Aggregationspipeline anzeigen). $set (Alias ​​von $addFields ) ist ein neuer Aggregationsoperator, der in diesem Fall den Wert des Felds ersetzt (durch Verketten von a selbst mit dem Suffix "World" ). Beachten Sie, wie a wird direkt basierend auf seinem eigenen Wert modifiziert ($a ).

  • Vergessen Sie nicht { multi: true } , andernfalls wird nur das erste übereinstimmende Dokument aktualisiert.