Mongodb: so fügen sie es ein, wenn es nicht existiert


Mit der folgenden Syntax können Sie ein Dokument nur dann in eine Sammlung in MongoDB einfügen, wenn es noch nicht vorhanden ist:

 db.teams.update(
	{
	  team: 'Hornets'
	}, 
	 {
	  $setOnInsert : {team: 'Hornets', points: '58', rebounds: '20'}
	 },
	 {upsert: true }
)

Dieser spezielle Code prüft, ob das Feld „Team“ den Wert „Hornets“ hat. Wenn dieser Wert vorhanden ist, passiert nichts.

Wenn dieser Wert jedoch nicht vorhanden ist, wird ein Dokument mit spezifischen Werten für die Felder „Team“, „Punkte“ und „Rebounds“ eingefügt.

Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.

Beispiel: Einfügen, wenn es in MongoDB nicht vorhanden ist

Nehmen wir an, wir haben eine Sammlung namens Teams mit den folgenden Dokumenten:

 db.teams.insertOne({team: " Mavs ", points: 30, rebounds: 8})
db.teams.insertOne({team: " Spurs ", points: 35, rebounds: 12})
db.teams.insertOne({team: " Rockets ", points: 20, rebounds: 7})
db.teams.insertOne({team: " Warriors ", points: 25, rebounds: 5})
db.teams.insertOne({team: " Cavs ", points: 23, rebounds: 9})

Nehmen wir an, wir verwenden den folgenden Code, um zu versuchen, ein Dokument für das „Mavs“-Team einzufügen:

 db.teams.update(
	{
	  team: 'Mavs'
	}, 
	 {
	  $setOnInsert : {team: 'Mavs', points: '58', rebounds: '20'}
	 },
	 {upsert: true }
)

Das Feld „Team“ enthält bereits Informationen für die „Mavs“, keines der Dokumente wird geändert.

Nehmen wir jedoch an, wir verwenden den folgenden Code, um ein Dokument für das Team „Hornets“ einzufügen:

 db.teams.update(
	{
	  team: 'Hornets'
	}, 
	 {
	  $setOnInsert : {team: 'Hornets', points: '58', rebounds: '20'}
	 },
	 {upsert: true }
)

Da das Feld „Team“ noch keine Informationen für die „Hornets“ enthält, wird der Sammlung ein neues Dokument mit den von uns für jedes Feld angegebenen Werten hinzugefügt.

So sieht die aktualisierte Sammlung aus:

 { _id: ObjectId("6203df361e95a9885e1e764a"),
  team: 'Mavs',
  points: 30,
  rebounds: 8 }
{ _id: ObjectId("6203df361e95a9885e1e764b"),
  team: 'Spurs',
  points: 35,
  rebounds: 12 }
{ _id: ObjectId("6203df361e95a9885e1e764c"),
  team: 'Rockets',
  points: 20,
  rebounds: 7 }
{ _id: ObjectId("6203df361e95a9885e1e764d"),
  team: 'Warriors',
  points: 25,
  rebounds: 5 }
{ _id: ObjectId("6203df361e95a9885e1e764e"),
  team: 'Cavs',
  points: 23,
  rebounds: 9 }
{ _id: ObjectId("6203e17de42bfba74fc73325"),
  team: 'Hornets',
  dots: '58',
  rebounds: '20' }

Beachten Sie, dass für das Team „Hornets“ ein neues Dokument hinzugefügt wurde.

Hinweis : Die vollständige Dokumentation für die Funktion $upsert finden Sie hier .

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie Sie andere gängige Vorgänge in MongoDB ausführen:

MongoDB: So fügen Sie ein neues Feld hinzu
MongoDB: So löschen Sie ein Feld
MongoDB: So zählen Sie unterschiedliche Werte in einem Feld

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert