sql >> Database teknologi >  >> NoSQL >> MongoDB

Sådan opdaterer du eksisterende dokumenter i MongoDB

MongoDB blev først udviklet i 2007 af Dwight Merriman og Eliot Horowitz, da de oplevede skalerbarhedsproblemer med relationelle databaser, mens de udviklede virksomhedswebapplikationer i deres virksomhed, kendt som DoubleClick. Ifølge en af ​​udviklerne blev dens navn afledt af ordet humongous for at understøtte ideen om at behandle en stor mængde data.

Databasen blev et open source-projekt i 2009, mens virksomheden tilbød kommercielle supporttjenester. Mange virksomheder adopterede MongoDB på grund af dets unikke funktioner. Et af disse firmaer var avisen The New York Times, og de brugte denne database til at bygge en webbaseret applikation til at indsende billederne. I år 2013 omdøbte DoubleClick officielt MongoDB Inc.

MongoDB-komponenter

Kerne MongoDB-komponenter og deres brug inkluderer:

  • Samlinger – Deres RDBMS-modstykker er tabeller. De er et sæt MongoDB-dokumenter
  • Dokument – Dens RDBMS-modstykke er Row. Dette er en samling af data, der er gemt i BSON-format
  • Felt – Dette er et enkelt element i et MongoDB-dokument, der indeholder værdier som felter og værdipar.

Dokumentbaseret lagring

Et dokument er en datastruktur med navn-værdi-par som JSON, og det er nemt at kortlægge ethvert brugerdefineret objekt i et hvilket som helst programmeringssprog med et MongoDB-dokument. For eksempel en elev objekt har attributter såsom navn, studentid, og emner hvor emner er en liste. Et dokument for studerende i MongoDB vil se sådan ud:

{
Name: "Michael",
Studentid: 1
Subjects: ["Mathematics, English, Geography"]}

Du vil bemærke, at dokumenter er JSON-repræsentationer af brugerdefinerede objekter fra ovenstående repræsentation. Desuden undgås overdreven JOINS ved at gemme data i form af arrays og dokumenter (indlejret) i et dokument.

Opdatering af dokumenter i MongoDB

MongoDB giver en opdatering () kommando, der bruges til at opdatere en samlings dokumenter. Grundlæggende parametre i kommandoen er en tilstand, for hvilken et dokument skal opdateres, og den modifikation, der skal udføres. En bruger kan tilføje kriterier til opdateringserklæringen for kun at opdatere udvalgte dokumenter. Eksemplet nedenfor viser, hvordan opdatering af en enkelt værdi i et dokument foregår:

  • Indtast updateOne kommando.
  • Vælg den betingelse, der skal bruges til at bestemme, hvilket dokument der skal opdateres. For eksempel vil vi opdatere et dokument med forfatteren og artiklen.
  • Brug sættet kommando for at ændre feltnavnet, vælg hvilket feltnavn du vil ændre, og indtast derefter den nye værdi som vist nedenfor:
db.fossdb.updateOne(
{ item: "article" },
{
$set: { "foss": "fosslinux", author: "Abraham" },
$currentDate: { lastModified: true }
}
)

Output:

Bemærk: sørg for at vælge den korrekte database ved hjælp af kommandoen "brug". For eksempel bruger jeg "fossdb"; derfor, for at vælge den rigtige database, vil jeg udføre kommandoen nedenfor:

use fossdb

Output:

Outputtet vil vise, at én post matchede betingelsen, og derfor ændres den relevante feltværdi i dokumentet.

For at opdatere bulkdokumenter samtidigt i MongoDB skal en bruger bruge en multifunktion, da der som standard kun ændres ét dokument ad gangen. Koden nedenfor viser, hvordan en bruger kan opdatere mange dokumenter på samme tid:

  • Vi finder først dokumentet, som har forfatteren som "Abraham" og ændrer forfatternavnet fra "Abraham" til "Masai." Vi vil derefter udstede updateMany kommando.
  • Vælg derefter betingelsen for at afgøre, hvilket dokument der skal ændres. Som tidligere nævnt vil vi bruge dokumentet med navnet "Forfatter".
  • Vælg de feltnavne, du vil opdatere, og indtast derefter deres nye værdier.
db.fossdb.updateMany(
{ "articles": { $lt: 50 } },
{
$set: { "foss": "fosslinux", authors: "Masai" },
$currentDate: { lastModified: true }
}
)

Output:

Efter at have kørt denne kommando, viser outputtet, at én post matchede betingelsen, og derfor blev det relevante felt ændret.

Hvorfor brugere skal vælge MongoDB

Følgende er grunde til, hvorfor brugere skal begynde at bruge MongoDB:

Dokumentorienteret

Da denne database er en database af typen NoSQL, lagres data i dokumenter i stedet for at have data i et relationelt typeformat. Dette gør denne database meget fleksibel og kan tilpasses virkelige situationer og krav.

Ad hoc-forespørgsler

Søgning efter felt, forespørgsler og regulære udtrykssøgninger understøttes i MongoDB; derfor kan der stilles spørgsmål for at bringe specifikke felter tilbage i dokumenter.

Indeksering

Indekser i MongoDB oprettes for at forbedre ydeevnen af ​​søgninger i databasen.

Belastningsbalancering

MongoDB bruger sharding til at skalere vandret ved at opdele data på tværs af flere MongoDB-instanser.

Replikering

Denne database giver høj tilgængelighed med replikasæt. Hvert replikasæt består af to eller flere MongoDB-instanser. Et replikasætmedlem kan til enhver tid fungere i rollen som den primære eller sekundære replika. Den primære replika er den centrale server, der interagerer med klienten og udfører alle læse-/skrivehandlinger. I modsætning hertil vedligeholder den sekundære replika en kopi af den primære replika ved hjælp af indbyggede replikeringsdata.

Datamodellering i MongoDB

Fra ovenstående diskussion har data i Mongo DB et fleksibelt skema. MongoDBs samlinger håndhæver ikke dokumentstruktur, i modsætning til SQL-databaser, hvor en bruger skal erklære en tabels skema før indsættelse af data. Denne form for fleksibilitet er det, der gør MongoDB så kraftfuld.

Når du modellerer data i MongoDB, skal brugere huske på følgende ting:

  • Datahentningsmønstre – i tilfælde af stor brug af forespørgsler bør brugere overveje at bruge indekser i deres datamodeller for at forbedre forespørgselseffektiviteten.
  • Ansøgningsbehov – en bruger bør se på applikationens forretningsbehov og se, hvilke data og type data der er nødvendige for applikationen.
  • Bliver databasen ændret ofte? – brugere bliver nødt til at genoverveje brugen af ​​indekser eller inkorporere sharding, hvis det er nødvendigt i deres datamodelleringsdesign for at forbedre effektiviteten af ​​deres overordnede MongoDB-miljø.

Konklusion

Denne artikel har givet en kort analyse af MongoDB, en viral database på markedet i dag. Derudover har den forklaret, hvordan man opdaterer eksisterende dokumenter i MongoDB. Vi håber, at denne artikel hjælper dig med at forstå MongoDB bedre. I tilfælde af problemer, kontakt os via kommentarsektionen, så vender vi tilbage til dig.


  1. Sådan bruger du GridFS til at gemme billeder ved hjælp af Node.js og Mongoose

  2. Redis Vs RabbitMQ som datamægler/beskedsystem mellem Logstash og elasticsearch

  3. ved at bruge Async i en transaktion i Spring-applikationen

  4. Sådan konverteres Redis-dato til R