sql >> Database >  >> NoSQL >> MongoDB

Collecties maken, tonen en neerzetten in MongoDB

MongoDB is een open-source NoSQL-database, wat betekent dat het, in tegenstelling tot relationele databases, geen invoerwaarden in tabelformaat accepteert. Gegevens worden opgeslagen in collecties en documenten, aangezien MongoDB een documentgeoriënteerde database is. Rijen in een SQL-tabel zijn vervangen door documenten in MongoDB.

In dit artikel wordt ervan uitgegaan dat u de MongoDB-server al op uw computer hebt geïnstalleerd en een shell op de server hebt aangesloten. Als je dat al hebt gedaan, kunnen we een paar functies van MongoDB verkennen, maar eerst een paar terminologieën:zo niet, dan kun je het artikel lezen over het installeren van MongoDB op Ubuntu.

  • Database – dit is een fysieke container die een set collecties bevat. Het kan nul of meer collecties bevatten. Er is geen limiet aan het aantal databases dat kan worden gehost in een enkele serverinstantie, omdat het meerdere databases kan hosten. De enige limiet is de adresruimte van het virtuele geheugen die het onderliggende besturingssysteem kan toewijzen.
  • Verzameling – een set MongoDB-documenten vergelijkbaar met "tabellen" in relationele databasesystemen. Een collectie bevat documenten met vergelijkbare of verwante doeleinden. Collecties zijn schemaloos, wat betekent dat documenten binnen dezelfde collectie verschillende velden kunnen hebben.
  • Document – dit is de basiseenheid voor het opslaan van gegevens in MongoDB. Ze zijn analoog aan ROW in traditionele relationele databasesystemen. Documenten zijn geordende set sleutel-waardeparen, wat betekent dat er een bijbehorende waarde is voor elke sleutel. Ze worden vaak 'objecten' genoemd. Ze worden weergegeven in een JSON-achtig formaat (sleutel-waarde-paren). Gegevens worden opgeslagen en opgevraagd in een binaire weergave van JSON-achtige gegevens die bekend staat als BSON. Een voorbeeld van dit formaat wordt hieronder getoond:
{
Student_enroll: “foss123”,
grade: ‘B’
}
  • Veld – dit is het equivalent van kolommen in relationele databases. Het wordt samen met zijn waarde opgeslagen in sleutel-waardeparen. Documenten in een verzameling kunnen nul of meer velden hebben.
  • _id – dit is een verplicht veld in elk MongoDB-document. Als een gebruiker een document maakt zonder een _id-veld, maakt MongoDB het veld automatisch aan. _ID's worden gebruikt om unieke documenten in een verzameling weer te geven. Ze werken als de primaire sleutels van documenten.

Een MongoDB-database maken

Het maken van een database in MongoDB gebeurt impliciet wanneer u een database probeert te gebruiken. Typ het volgende in de mongo-shell om een ​​database aan te maken;

> use fossDB

Uitgang:

Opmerking: Voer de onderstaande opdracht uit om de Mongo-shell te openen:

mongo

MongoDB zal eerst controleren of er een database met de naam fossDB aanwezig is. Zo niet, dan wordt er een nieuwe gemaakt om te gebruiken. De Mongo-shell schakelt dan over naar fossDB. Dit betekent dat elke verzameling en elk document dat wordt gemaakt, bijgewerkt of gelezen uit deze database komt, tenzij anders aangegeven.

Om af te drukken in welke database u zich nu bevindt, gebruikt u het commando >db . Om alle beschikbare en aangemaakte databases weer te geven, gebruikt u het commando >show . Een voorbeeld van deze commando's die in gebruik zijn, wordt hieronder getoond;

>db
fossDB
>show dbs
admin  0.000GB
config  0.000GB
local    0.000GB
mydb   0.000GB

Uitgang:

Opmerking: Bemoei je niet met de admin- en configuratiedatabases, want Mongo gebruikt ze voor administratieve doeleinden.

Een MongoDB-verzameling maken

Om een ​​verzameling aan te maken, moet u er eerst voor zorgen dat u zich in de juiste database bevindt waarin u de verzameling wilt maken. Er zijn twee manieren om een ​​verzameling aan te maken, namelijk:

1. Een verzameling expliciet maken

Gebruik de onderstaande opdracht:

>db.createCollection("Collection1");
{"ok":1}

Uitgang:

Deze opdracht maakt dan een verzameling aan met de naam Verzameling1

2. Een document invoegen in een nieuwe verzameling

U kunt snel proberen een document in een niet-bestaande verzameling in te voegen. Dit zal Mongo vragen om een ​​nieuwe collectie voor je te maken. Houd er rekening mee dat hoewel dit handig is voor het programmatisch maken van collecties, als u Mongo-shell gebruikt en ergens een typfout maakt tijdens het invoegen van een document, het document in een nieuwe database kan terechtkomen die u niet kent.

De syntaxis voor het maken van een nieuwe collectie is;

db.collection_name.insert(document); 

Gebruik de volgende opdracht om een ​​collectie Collection2 in de fossDB-database te maken:

> db.Collection2.insert({name: "Alex",key: "value",age: 20});

Uitgang:

In dit voorbeeld wordt het documentgedeelte vertegenwoordigd door de volgende JSON-tekenreeks:

{
name: "Alex",
key: "value"
age: 20
}

Dit zijn de sleutel-waardeparen die typisch zijn voor een JSON-tekenreeks. De "naam" is de sleutel en "Alex" is de waarde. Een gebruiker kan meerdere documenten in deze verzameling hebben met de sleutelnaam en een andere waarde, bijvoorbeeld Max.

Gebruik de onderstaande opdracht om alle collecties in een database weer te geven:

> show collections
Collection1
Collection2

Uitgang:

Uit de uitvoer ziet u dat beide collecties zijn gemaakt. U bent ervan overtuigd dat u een nieuw document aan een verzameling kunt toevoegen.

Collecties weergeven

Als het je nog niet is opgevallen, hebben we het trefwoord show nogal veel gebruikt bij het bespreken van de andere commando's. Om dit samen te vatten, de opdracht voor het tonen van collecties en databases is:

>show collections
>show dbs

Uitgang:

In combinatie met het commando db, deze commando's worden gebruikt om de huidige database af te drukken en zijn erg handig bij interactie met de Mongo-shell.

MongoDB-collecties en database laten vallen

Het drop-commando is een sleutelwoord dat we in dit artikel niet hebben besproken. Het is een opdracht die wordt gebruikt om collecties of volledige databases van de Mongo-server van een gebruiker te verwijderen. Om te laten vallen, leidt de volgende syntaxis u door het proces.

1. Verzamelingen laten vallen

We zullen de verzameling "Collection2" die we eerder hebben gemaakt, verwijderen. Dit wordt gedaan met behulp van de onderstaande opdracht:

>db.Collection2.drop()

Uitgang:

Om te controleren of de collectie is verwijderd, kunt u het commando show collections gebruiken om de resterende collecties weer te geven. U zult merken dat er één collectie zal ontbreken in de lijst.

2. Databases laten vallen

Voordat u de opdracht uitvoert om de database te verwijderen, moet u controleren of u zich in de juiste database bevindt, anders zou u de verkeerde database kunnen verwijderen en waardevolle gegevens kwijtraken die u niet van plan was te verwijderen. In dit voorbeeld laten we de database fossDB vallen die we eerder hadden gemaakt. Laten we ervoor zorgen dat we ons in de juiste database bevinden met behulp van de onderstaande opdracht:

>db
fossDB

Uitgang:

laten we dan de database laten vallen met behulp van de onderstaande opdracht:

>db.dropDatabase();

Uitgang:

Hieronder gaan we verschillende SQL-termen en de bijbehorende MongoDB-termen presenteren;

SQL-termen MongoDB-termen
Database Database
Tabel Verzameling
Index Index
Rij Document / BSON-document
Kolom Veld
Table joins Ingesloten documenten en koppelingen
Primaire sleutel – in SQL specificeert dit elke unieke kolom- of kolomcombinatie Primaire sleutel – deze sleutel wordt automatisch ingesteld op het veld _id in MongoDB

Conclusie

MongoDB is enorm populair geworden in de wereld van de ontwikkelaars vanwege de JSON-achtige weergave, schaalbaarheid, gemak en dynamische manier om documenten te maken. Dit artikel heeft de drie opdrachten besproken die in de MongoDB-shell worden gebruikt. We hopen dat dit artikel u heeft geholpen deze opdrachten beter te begrijpen. Als u op zoek bent naar een database om te gebruiken in een project voor data-intensief tillen, is MongoDB een goede optie die u misschien wilt overwegen.


  1. MongoDB toevoegen aan deelname aan verzamelingsveld vanaf de basis

  2. Hoe kan ik een booleaans veld in één document wisselen met atomaire bewerking?

  3. Werking van @cache_page() decorateur in django-redis-cache

  4. Redis - Overweeg een van de bonen te hernoemen of overschrijven in te schakelen door spring.main.allow-bean-definition-overriding=true in te stellen