Mongodb: hoe in te voegen als het niet bestaat


U kunt de volgende syntaxis gebruiken om een document alleen in een verzameling in MongoDB in te voegen als dit nog niet bestaat:

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

Deze specifieke code controleert of het veld „team“ de waarde „Hornets“ heeft. Als deze waarde bestaat, gebeurt er niets.

Als deze waarde echter niet bestaat, wordt er een document ingevoegd met specifieke waarden voor de velden „team“, „punten“ en „rebounds“.

Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.

Voorbeeld: Voeg in als het niet bestaat in MongoDB

Laten we zeggen dat we een verzameling hebben met de naam teams met de volgende documenten:

 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})

Laten we zeggen dat we de volgende code gebruiken om te proberen een document in te voegen voor het „Mavs“-team:

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

Het veld “team” bevat al informatie voor de “Mavs”, geen van de documenten zal worden gewijzigd.

Laten we echter zeggen dat we de volgende code gebruiken om een document voor het „Hornets“-team in te voegen:

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

Omdat het veld „team“ nog geen informatie bevat voor de „Hornets“, wordt er een nieuw document aan de verzameling toegevoegd met de waarden die we voor elk veld hebben opgegeven.

Zo ziet de bijgewerkte collectie eruit:

 { _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' }

Merk op dat er een nieuw document is toegevoegd voor het “Hornets”-team.

Opmerking : u kunt de volledige documentatie voor de functie $upsert hier vinden.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in MongoDB kunt uitvoeren:

MongoDB: Hoe een nieuw veld toe te voegen
MongoDB: Hoe een veld te verwijderen
MongoDB: Hoe verschillende waarden in een veld te tellen

Einen Kommentar hinzufügen

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