sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur man uppdaterar befintliga dokument i MongoDB

MongoDB utvecklades först 2007 av Dwight Merriman och Eliot Horowitz när de upplevde skalbarhetsproblem med relationsdatabaser när de utvecklade företagswebbapplikationer på sitt företag, känd som DoubleClick. Enligt en av utvecklarna härleddes dess namn från ordet humongous för att stödja idén om att bearbeta en stor mängd data.

Databasen blev ett öppen källkodsprojekt 2009 samtidigt som företaget erbjöd kommersiella supporttjänster. Många företag antog MongoDB på grund av dess unika egenskaper. Ett av dessa företag var tidningen The New York Times, och de använde denna databas för att bygga en webbaserad applikation för att skicka in bilderna. År 2013 döpte DoubleClick officiellt om MongoDB Inc.

MongoDB-komponenter

Core MongoDB-komponenter och deras användning inkluderar:

  • Samlingar – Deras RDBMS-motsvarigheter är tabeller. De är en uppsättning MongoDB-dokument
  • Dokument – Dess RDBMS-motsvarighet är Row. Detta är en samling data som lagras i BSON-format
  • Fält – Detta är ett enda element i ett MongoDB-dokument som innehåller värden som fält och värdepar.

Dokumentbaserad lagring

Ett dokument är en datastruktur med namn-värdepar som JSON, och det är enkelt att mappa alla anpassade objekt av vilket programmeringsspråk som helst med ett MongoDB-dokument. Till exempel en elev objektet har attribut som namn, studentid, och ämnen där ämnen är en lista. Ett dokument för studenter i MongoDB kommer att se ut så här:

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

Du kommer att märka att dokument är JSON-representationer av anpassade objekt från ovanstående representation. Dessutom undviks överdrivna JOINS genom att spara data i form av matriser och dokument (inbäddade) i ett dokument.

Uppdaterar dokument i MongoDB

MongoDB tillhandahåller en uppdatering () kommando som används för att uppdatera dokumenten i en samling. Grundläggande parametrar i kommandot är ett tillstånd för vilket ett dokument behöver uppdateras och den modifiering som måste utföras. En användare kan lägga till kriterier i uppdateringssatsen för att endast uppdatera valda dokument. Exemplet nedan visar hur uppdatering av ett enstaka värde i ett dokument går till:

  • Mata in updateOne kommando.
  • Välj villkoret som ska användas för att bestämma vilket dokument som ska uppdateras. Till exempel kommer vi att uppdatera ett dokument med författaren och artikeln.
  • Använd uppsättningen kommandot för att ändra fältnamnet, välj vilket fältnamn du vill ändra och ange sedan det nya värdet enligt nedan:
db.fossdb.updateOne(
{ item: "article" },
{
$set: { "foss": "fosslinux", author: "Abraham" },
$currentDate: { lastModified: true }
}
)

Utdata:

Obs! se till att välja rätt databas med kommandot "använd". Till exempel använder jag "fossdb"; därför, för att välja rätt databas, kommer jag att utföra kommandot nedan:

use fossdb

Utdata:

Utdata kommer att visa att en post matchade villkoret, och därför ändras det relevanta fältvärdet i dokumentet.

För att uppdatera bulkdokument samtidigt i MongoDB måste en användare använda ett multialternativ eftersom som standard bara ett dokument ändras åt gången. Koden nedan visar hur en användare kan uppdatera många dokument samtidigt:

  • Vi hittar först dokumentet som har författaren som "Abraham" och ändrar författarens namn från "Abraham" till "Masai." Vi kommer sedan att utfärda updateMany kommando.
  • Välj sedan villkoret för att bestämma vilket dokument som ska ändras. Som nämnts tidigare kommer vi att använda dokumentet med "Author"-namnet.
  • Välj de fältnamn du vill uppdatera och ange sedan deras nya värden.
db.fossdb.updateMany(
{ "articles": { $lt: 50 } },
{
$set: { "foss": "fosslinux", authors: "Masai" },
$currentDate: { lastModified: true }
}
)

Utdata:

Efter att ha kört det här kommandot visar resultatet att en post matchade villkoret, och därför ändrades det relevanta fältet.

Varför användare bör välja MongoDB

Följande är skäl till varför användare bör börja använda MongoDB:

Dokumentorienterad

Eftersom denna databas är en databas av NoSQL-typ, lagras data i dokument istället för att ha data i ett relationsformat. Detta gör denna databas mycket flexibel och anpassningsbar till verkliga situationer och krav.

Ad hoc-frågor

Sökning efter fält, frågor och reguljära uttryckssökningar stöds i MongoDB; Därför kan frågor göras för att få tillbaka specifika fält i dokument.

Indexering

Index i MongoDB skapas för att förbättra prestandan för sökningar i databasen.

Lastbalansering

MongoDB använder sharding för att skala horisontellt genom att dela upp data över flera MongoDB-instanser.

Replikering

Denna databas ger hög tillgänglighet med replikuppsättningar. Varje replikuppsättning består av två eller flera MongoDB-instanser. En replikuppsättningsmedlem kan agera i rollen som den primära eller sekundära repliken när som helst. Den primära repliken är den centrala servern som interagerar med klienten och utför alla läs-/skrivoperationer. Däremot behåller den sekundära repliken en kopia av den primära repliken med hjälp av inbyggd replikeringsdata.

Datamodellering i MongoDB

Från diskussionen ovan har data i Mongo DB ett flexibelt schema. MongoDB:s samlingar upprätthåller inte dokumentstruktur, till skillnad från SQL-databaser, där en användare måste deklarera en tabells schema innan data infogas. Denna typ av flexibilitet är det som gör MongoDB så kraftfullt.

Vid modellering av data i MongoDB bör användare ha följande saker i åtanke:

  • Datahämtningsmönster – i händelse av stor frågeanvändning bör användare överväga att använda index i sina datamodeller för att förbättra frågeeffektiviteten.
  • Ansökningsbehov – en användare bör titta på applikationens affärsbehov och se vilken data och vilken typ av data som behövs för applikationen.
  • Ändras databasen ofta? – användare måste ompröva användningen av index eller införliva sharding om så krävs i sin datamodelleringsdesign för att förbättra effektiviteten i deras övergripande MongoDB-miljö.

Slutsats

Den här artikeln har gett en kort analys av MongoDB, en viral databas på marknaden idag. Dessutom har den förklarat hur man uppdaterar befintliga dokument i MongoDB. Vi hoppas att den här artikeln hjälper dig att förstå MongoDB bättre. Om du har problem, kontakta oss via kommentarsektionen så återkommer vi direkt.


  1. MongoDB - är DBREF nödvändigt?

  2. Hur tar jag bort allt i Redis?

  3. Hur man ställer in mongod.conf bind_ip med flera ip-adresser

  4. Redis, sessionsutgång och omvänd sökning