sql >> Database >  >> NoSQL >> MongoDB

Maak een verzameling in MongoDB

Wanneer u een database aanmaakt in MongoDB, is uw database in feite een lege container waaraan u een of meer collecties kunt toevoegen.

Een verzameling is analoog aan een tabel in relationele databases.

In relationele databases kunt u CREATE TABLE . gebruiken om elke gewenste tabel in de database te maken.

Maar MongoDB is geen relationele database en slaat zijn gegevens op als documenten. Elk document wordt opgeslagen in een verzameling.

In dit artikel wordt uitgelegd hoe u een verzameling maakt in MongoDB.

Twee opties

Je hebt twee opties voor het maken van collecties in MongoDB:

  • Impliciet
  • Expliciet

Hier is een voorbeeld van elk.

Een verzameling maken – impliciet

U kunt impliciet een verzameling maken door eenvoudig een document toe te voegen aan een niet-bestaande verzameling. Wanneer u dit doet, wordt de verzameling gemaakt als deze nog niet bestaat.

Hier is een voorbeeld van het impliciet maken van een collectie:

db.pets.insert({ name: "Fetch" })

Dat creëert een verzameling genaamd pets , en voegt er een document in.

Eigenlijk maakt het de verzameling alleen aan als deze nog niet bestaat. Als het al bestaat, voegt het het document gewoon in de bestaande verzameling met die naam in.

In principe gaat de syntaxis als volgt:

db.<collection>.insert()

Waar <collection> is de naam van de collectie.

Een verzameling maken – expliciet

U kunt ook expliciet verzamelingen maken met de db.createCollection() methode. Met deze methode kunt u verschillende opties specificeren, zoals het instellen van de maximale grootte of de documentatie-validatieregels.

Dit is een beetje analoog aan de CREATE TABLE verklaring in SQL. Dat gezegd hebbende, vereist MongoDB niet dat u kolommen, gegevenstypen, enz. specificeert zoals u zou moeten specificeren met de CREATE TABLE statement bij gebruik van een relationele database.

Hier is een voorbeeld van het gebruik van de db.createCollection() methode om een ​​collectie aan te maken:

db.createCollection("employees")

Resultaat:

{ "ok" : 1 } 

In dit voorbeeld heb ik geen opties opgegeven. Daarom was er geen echt voordeel van het maken van het zoals deze verzen het impliciet creëren (zoals in het vorige voorbeeld).

Als je echter opties voor je verzameling wilt specificeren, dan is het expliciet maken ervan de beste keuze.

Hier is een voorbeeld van het specificeren van enkele opties bij het maken van een collectie:

db.createCollection(
    "products", 
    { 
        capped : true, 
        size : 7500500, 
        max : 7000 
    } 
)

Resultaat:

{ "ok" : 1 } 

Hier is een uitleg van de opties die ik in dit voorbeeld heb gegeven:

  • De capped argument stelt u in staat om te specificeren of de grootte van de collectie al dan niet gemaximeerd moet worden (d.w.z. niet toegestaan ​​om verder te groeien dan een bepaalde grootte). Als u true opgeeft , moet u ook een maximumgrootte instellen in de size veld.
  • De size argument stelt een maximale grootte in bytes in voor een gelimiteerde verzameling. Zodra een afgetopte verzameling de maximale grootte bereikt, verwijdert MongoDB de oudere documenten om ruimte te maken voor de nieuwe documenten. De size veld is verplicht voor gelimiteerde collecties en genegeerd voor andere collecties.
  • De max argument stelt u in staat om het maximale aantal documenten op te geven dat is toegestaan ​​in de gelimiteerde verzameling. Als een gelimiteerde collectie de size bereikt limiet voordat het het maximale aantal documenten bereikt, verwijdert MongoDB oude documenten. Zorg er daarom voor dat de size argument is voldoende om het aantal documenten te bevatten dat is gespecificeerd met de max argument.

Dit zijn drie van de verschillende opties die u kunt specificeren met de db.createCollection() methode.

Syntaxis en meer details

De volledige syntaxis (op het moment van schrijven) ziet er als volgt uit:

db.createCollection( <name>,
   {
     capped: <boolean>,
     autoIndexId: <boolean>,
     size: <number>,
     max: <number>,
     storageEngine: <document>,
     validator: <document>,
     validationLevel: <string>,
     validationAction: <string>,
     indexOptionDefaults: <document>,
     viewOn: <string>,
     pipeline: <pipeline>,
     collation: <document>,
     writeConcern: <document>
   }
)

Zie db.createCollection() uit de officiële MongoDB-documentatie voor een gedetailleerde uitleg van elke optie.


  1. kan redis-server op linux niet doden

  2. Model.find().toArray() beweert geen .toArray()-methode te hebben

  3. MongoDB $seconde

  4. Redis niet in staat om verbinding te maken in drukke belasting