sql >> Database >  >> NoSQL >> MongoDB

Hoe bestaande documenten in MongoDB bij te werken

MongoDB werd voor het eerst ontwikkeld in 2007 door Dwight Merriman en Eliot Horowitz toen ze schaalbaarheidsproblemen ondervonden met relationele databases tijdens het ontwikkelen van zakelijke webapplicaties in hun bedrijf, bekend als DoubleClick. Volgens een van de ontwikkelaars is de naam afgeleid van het woord gigantisch ter ondersteuning van het idee om een ​​grote hoeveelheid gegevens te verwerken.

De database werd in 2009 een open-sourceproject terwijl het bedrijf commerciële ondersteunende diensten aanbood. Veel bedrijven hebben MongoDB geadopteerd vanwege zijn unieke eigenschappen. Een van deze bedrijven was de krant The New York Times en zij gebruikten deze database om een ​​webapplicatie te bouwen om de foto's in te dienen. In het jaar 2013 heeft DoubleClick officieel MongoDB Inc. hernoemd.

MongoDB-componenten

Core MongoDB-componenten en hun gebruik omvatten:

  • Collecties – Hun RDBMS-tegenhangers zijn tabellen. Ze zijn een set MongoDB-documenten
  • Document – De RDBMS-tegenhanger is Row. Dit is een verzameling gegevens die zijn opgeslagen in BSON-indeling
  • Veld – Dit is een enkel element in een MongoDB-document dat waarden bevat als velden en waardeparen.

Op documenten gebaseerde opslag

Een document is een gegevensstructuur met naam-waardeparen zoals JSON, en het is moeiteloos om elk aangepast object van elke programmeertaal in kaart te brengen met een MongoDB-document. Bijvoorbeeld een leerling object heeft attributen zoals name, studentid, en onderwerpen waar onderwerpen een lijst zijn. Een document voor studenten in MongoDB ziet er als volgt uit:

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

U zult merken dat documenten JSON-representaties zijn van aangepaste objecten uit de bovenstaande weergave. Bovendien worden buitensporige JOINS vermeden door gegevens op te slaan in de vorm van arrays en documenten (ingesloten) in een document.

Documenten bijwerken in MongoDB

MongoDB biedt een update () commando dat wordt gebruikt om de documenten van een collectie bij te werken. Basisparameters in de opdracht zijn een voorwaarde waarvoor een document moet worden bijgewerkt en de wijziging die moet worden uitgevoerd. Een gebruiker kan criteria toevoegen aan de update-instructie om alleen geselecteerde documenten bij te werken. Het onderstaande voorbeeld laat zien hoe het bijwerken van een enkele waarde in een document wordt gedaan:

  • Voer de updateOne . in commando.
  • Kies de voorwaarde die moet worden gebruikt om te beslissen welk document wordt bijgewerkt. We zullen bijvoorbeeld een document bijwerken met de auteur en het artikel.
  • Gebruik de set opdracht om de veldnaam te wijzigen, kies welke veldnaam u wilt wijzigen en voer vervolgens de nieuwe waarde in zoals hieronder weergegeven:
db.fossdb.updateOne(
{ item: "article" },
{
$set: { "foss": "fosslinux", author: "Abraham" },
$currentDate: { lastModified: true }
}
)

Uitgang:

Opmerking: zorg ervoor dat u de juiste database selecteert met behulp van de opdracht "use". Ik gebruik bijvoorbeeld "fossdb"; daarom, om de juiste database te kiezen, zal ik de onderstaande opdracht uitvoeren:

use fossdb

Uitgang:

De uitvoer zal laten zien dat één record aan de voorwaarde voldeed, en daarom is de relevante veldwaarde in het document gewijzigd.

Om bulkdocumenten tegelijkertijd in MongoDB bij te werken, moet een gebruiker een multi-optie gebruiken, aangezien er standaard slechts één document tegelijk wordt gewijzigd. De onderstaande code laat zien hoe een gebruiker veel documenten tegelijk kan bijwerken:

  • We zullen eerst het document met de auteur vinden als 'Abraham' en de naam van de auteur wijzigen van 'Abraham' in 'Masai'. We zullen dan de updateMany . uitgeven commando.
  • Kies vervolgens de voorwaarde om te beslissen welk document moet worden gewijzigd. Zoals eerder vermeld, zullen we het document met de naam "Auteur" gebruiken.
  • Kies de veldnamen die u wilt bijwerken en voer vervolgens hun nieuwe waarden dienovereenkomstig in.
db.fossdb.updateMany(
{ "articles": { $lt: 50 } },
{
$set: { "foss": "fosslinux", authors: "Masai" },
$currentDate: { lastModified: true }
}
)

Uitgang:

Nadat deze opdracht met succes is uitgevoerd, toont de uitvoer dat één record aan de voorwaarde voldeed en dat daarom het relevante veld is gewijzigd.

Waarom gebruikers voor MongoDB moeten kiezen

Hieronder volgen redenen waarom gebruikers MongoDB zouden moeten gaan gebruiken:

Documentgericht

Aangezien deze database een NoSQL-database is, worden gegevens opgeslagen in documenten in plaats van gegevens in een relationeel type formaat. Dit maakt deze database zeer flexibel en aanpasbaar aan reële situaties en vereisten.

Ad-hocvragen

Zoeken op veld, query's en zoekopdrachten naar reguliere expressies worden ondersteund in MongoDB; vandaar dat er vragen kunnen worden gesteld om specifieke velden in documenten terug te halen.

Indexeren

Indexen in MongoDB worden gemaakt om de prestaties van zoekopdrachten in de database te verbeteren.

Loadbalancering

MongoDB gebruikt sharding om horizontaal te schalen door gegevens over meerdere MongoDB-instanties te splitsen.

Replicatie

Deze database biedt hoge beschikbaarheid met replicasets. Elke replicaset bestaat uit twee of meer MongoDB-instanties. Een lid van een replicaset kan op elk moment de rol van primaire of secundaire replica vervullen. De primaire replica is de centrale server die samenwerkt met de client en alle lees-/schrijfbewerkingen uitvoert. Daarentegen onderhoudt de secundaire replica een kopie van de primaire replica met behulp van ingebouwde replicatiegegevens.

Gegevensmodellering in MongoDB

Uit de bovenstaande discussie hebben gegevens in Mongo DB een flexibel schema. De collecties van MongoDB dwingen geen documentstructuur af, in tegenstelling tot SQL-databases, waar een gebruiker het schema van een tabel moet declareren voordat gegevens worden ingevoegd. Dit soort flexibiliteit is wat MongoDB zo krachtig maakt.

Bij het modelleren van gegevens in MongoDB moeten gebruikers het volgende in gedachten houden:

  • Patronen voor het ophalen van gegevens – in het geval van intensief gebruik van zoekopdrachten, zouden gebruikers moeten overwegen om indexen in hun gegevensmodellen te gebruiken om de efficiëntie van zoekopdrachten te verbeteren.
  • Aanvraag nodig – een gebruiker moet kijken naar de zakelijke behoeften van de applicatie en zien welke gegevens en type gegevens nodig zijn voor de applicatie.
  • Wordt de database regelmatig gewijzigd? - gebruikers zullen het gebruik van indexen moeten heroverwegen of indien nodig sharding moeten opnemen in hun ontwerp voor gegevensmodellering om de efficiëntie van hun algehele MongoDB-omgeving te verbeteren.

Conclusie

Dit artikel heeft een korte analyse gegeven van MongoDB, een virale database die momenteel op de markt is. Daarnaast heeft het uitgelegd hoe u bestaande documenten in MongoDB kunt bijwerken. We hopen dat dit artikel je helpt MongoDB beter te begrijpen. Neem in geval van een probleem contact met ons op via het opmerkingengedeelte en we nemen zo snel mogelijk contact met u op.


  1. MongoDB Veel-op-veel-associatie

  2. Handige scripts voor Couchbase Dba

  3. Kan geen verbinding maken met mongoDB in docker-container

  4. Gegevens maken, lezen, bijwerken en verwijderen met Node.js - Mongoose