Node.js-taustakehityksen bootcamp · Oppitunti

Mongoose ODM tietomallinnukseen

Opitte määrittelemään skeemoja ja malleja Mongoose-ohjelmistolla sekä jäsentämään tietoja tehokkaasti MongoDB:ssä.

Oppitunti 2/410 vaihetta

Mongoose ODM tietomallinnukseen on ilmainen Node.js-taustakehityksen bootcamp-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Node.js-taustakehityksen bootcamp-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Node.js-taustakehityksen bootcamp-kurssilla on yhteensä 4 oppituntia.

Mongoose-skeemojen esittely

Edellisessä oppitunnissa muodostimme yhteyden MongoDB:hen. Nyt opimme jäsentämään tietomme Mongoose-kirjaston ja Schemas-määritysten avulla.

Mongoose on MongoDB:n ja Node.js:n Object Data Modeling (ODM) -kirjasto. Se tarjoaa selkeän skeemapohjaisen ratkaisun sovelluksen tietojen mallintamiseen, mikä helpottaa MongoDB:n käyttöä.

Miksi skeemat ovat tärkeitä

MongoDB on NoSQL-tietokanta, eli se ei oletusarvoisesti edellytä skeemaa. Tämä tarjoaa paljon joustavuutta, mutta ilman hallintaa se voi johtaa epäyhtenäisiin tietoihin.

Mongoose-skeemat tuovat rakenteen ja yhdenmukaisuuden:

  • Tietojen rakenteen määrittäminen: Mitä kenttiä dokumentilla tulisi olla.
  • Tietotyypit: Varmistetaan, että kenttiin tallennetaan oikean tyyppisiä arvoja (String, Number jne.).
  • Validointi: Lisätään sääntöjä, kuten 'required' tai 'minimum length'.

Ensimmäisen skeeman määrittäminen

Määritetään perusskeema kohteelle Book. Määritämme ominaisuudet, kuten title ja author, sekä niiden odotetut tietotyypit.

Ensin meidän on tuotava Mongoose, minkä jälkeen luomme uuden Schema-olion.

const mongoose = require('mongoose');

// Define the Book Schema
const bookSchema = new mongoose.Schema({
  title: String,
  author: String,
  pages: Number,
  isPublished: Boolean
});

console.log('Book Schema defined!');
// In a real app, this schema would be used to create a model.

Yleiset skeematyypit

Mongoose tukee monia tietotyyppejä, jotka vastaavat JavaScriptin tyyppejä ja MongoDB:n BSON-tyyppejä. Tässä ovat yleisimmät:

  • String: Tekstille, kuten nimille ja kuvauksille.
  • Number: Lukuarvoille, kuten iälle ja hinnalle.
  • Boolean: Arvoille true/false.
  • Date: Päivämäärien ja aikojen tallentamiseen.
  • ObjectId: Erityinen tyyppi yksilöllisille tunnisteille, joita käytetään usein dokumenttien välisiin viittauksiin.

Skeeman asetukset: Required ja Default

Pelkkien tyyppien lisäksi skeemojen avulla voit lisätä asetuksia kuhunkin kenttään. Nämä asetukset määrittävät toiminnan ja validoinnin. Kaksi yleistä asetusta ovat required ja default.

  • required: true: Tarkoittaa, että tällä kentällä täytyy olla arvo.
  • default: 'value': Tarjoaa oletusarvon, jos arvoa ei määritetä dokumenttia luotaessa.
const mongoose = require('mongoose');

const productSchema = new mongoose.Schema({
  name: {
    type: String,
    required: true // Name is mandatory
  },
  price: {
    type: Number,
    required: true,
    default: 0 // Default price is 0 if not set
  },
  createdAt: {
    type: Date,
    default: Date.now // Automatically set current date
  }
});

console.log('Product Schema with options defined!');

Mongoose-mallin luominen

Skeema on kuin suunnitelma. Jotta voit käsitellä MongoDB-kokoelmaa, sinun on luotava skeemasta Model.

Mongoose Model on skeeman ympärille rakennettu kääre, joka tarjoaa käyttöliittymän tietokantaan: tietueiden luomiseen, hakemiseen, päivittämiseen ja poistamiseen tietystä kokoelmasta.

const mongoose = require('mongoose');

// Define a simple User Schema
const userSchema = new mongoose.Schema({
  name: String,
  email: String
});

// Create a Model from the schema
// 'User' is the singular name. Mongoose will use 'users' as collection name.
const User = mongoose.model('User', userSchema);

console.log('User Model created from schema!');
// Now you can use the User model to interact with the 'users' collection.

Kenttien perusvalidointi

Mongoose-skeemat tarjoavat sisäänrakennetun validoinnin, jolla tietojen eheys varmistetaan ennen niiden tallentamista tietokantaan. Tämä auttaa pitämään tiedot siisteinä ja yhdenmukaisina.

Voit määrittää skeeman sisällä suoraan validoijia, kuten minlength, maxlength ja enum (sallittujen arvojen luettelo).

const mongoose = require('mongoose');

const taskSchema = new mongoose.Schema({
  description: {
    type: String,
    required: true,
    minlength: 5, // Must be at least 5 characters
    maxlength: 100 // Max 100 characters
  },
  status: {
    type: String,
    enum: ['pending', 'completed', 'cancelled'], // Only these values allowed
    default: 'pending'
  }
});

console.log('Task Schema with validation rules defined!');

Dokumenttien upottaminen

Joskus yksi dokumentti loogisesti 'sisältää' toisen. Mongoose mahdollistaa skeemojen upottamisen suoraan toisten skeemojen sisään, jolloin syntyy sisäkkäisiä dokumentteja.

Tämä on hyödyllistä tiiviisti toisiinsa liittyville tiedoille, jotka eivät tarvitse omaa erillistä kokoelmaa, kuten käyttäjäprofiiliin kuuluvalle osoitteelle.

const mongoose = require('mongoose');

// Define an Address Schema
const addressSchema = new mongoose.Schema({
  street: String,
  city: String,
  zip: String
});

// Embed Address Schema within a Person Schema
const personSchema = new mongoose.Schema({
  name: String,
  // The 'address' field will be a nested document using addressSchema
  address: addressSchema 
});

console.log('Person Schema with embedded Address Schema defined!');
// A 'Person' document will now contain an 'address' object.

Pikatarkistus: skeeman kentät

Kuvitellaan, että rakennatte blogikirjoituksen skeemaa. Siinä tarvitaan title (pakollinen merkkijono), content (merkkijono) ja publishDate (päivämäärä, jonka oletusarvo on nykyhetki).

Mikä seuraavista Mongoose-skeeman määrittelyistä määrittää nämä kentät ja niiden asetukset oikein?

Kertaus: skeemat ja mallit

Hienoa työtä! Olette oppineet Mongoose-skeemojen ja -mallien perusteet:

  • Skeemat määrittävät MongoDB-dokumenttien rakenteen, tietotyypit ja validointisäännöt.
  • Ne tuovat yhdenmukaisuutta skeemattomaan tietokantaan.
  • Luotte skeemoista Model-malleja, joiden avulla käsittelette MongoDB:n tiettyjä kokoelmia.
  • Tutustuimme yleisiin tyyppeihin, required- ja default-asetusten kaltaisiin valintoihin sekä dokumenttien upottamiseen.

Seuraavaksi käytämme näitä malleja CRUD-toimintoihin (Create, Read, Update, Delete)!

Aloita maksutta

Opi JavaScript tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
22
Oppitunnit
92

Usein kysytyt kysymykset

Onko oppitunti ”Mongoose ODM tietomallinnukseen” ilmainen?

Kyllä – oppitunnin ”Mongoose ODM tietomallinnukseen” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Node.js-taustakehityksen bootcamp-kurssin, päivitä CoddyKit PROhon. Node.js-taustakehityksen bootcamp-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Mongoose ODM tietomallinnukseen”?

Opitte määrittelemään skeemoja ja malleja Mongoose-ohjelmistolla sekä jäsentämään tietoja tehokkaasti MongoDB:ssä. Harjoittelet Node.js-taustakehityksen bootcamp-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Node.js-taustakehityksen bootcamp-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Node.js-taustakehityksen bootcamp-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”Mongoose ODM tietomallinnukseen”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Node.js-taustakehityksen bootcamp-oppitunnilla?

Kyllä. Jokainen Node.js-taustakehityksen bootcamp-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Node.js:n yhdistäminen MongoDB:hen
  2. Mongoose ODM tietomallinnukseen
  3. CRUD-toiminnot Mongoose-ohjelmistolla
  4. Tietojen kysely ja suodatus Mongoose-ohjelmistolla
← Takaisin: Node.js-taustakehityksen bootcamp