Το MongoDB είναι μια βάση δεδομένων NoSQL χωρίς σχήματα με ευέλικτες δομές εγγράφων, σε αντίθεση με τις βάσεις δεδομένων SQL. Η χρήση του MongoDB ως βάσης δεδομένων αποφέρει πολλά οφέλη, από την εύκολη κλιμάκωση έως τις σύγχρονες δυνατότητες βάσης δεδομένων, όπως οι συναλλαγές.
Το MongoDB υποστηρίζει επίσης βιβλιοθήκες μοντελοποίησης δεδομένων αντικειμένων (ODM) όπως το Mongoose. Τα ODM διαχειρίζονται σχέσεις δεδομένων, επικυρώνουν σχήματα και μετατρέπουν αντικείμενα σε μοντέλα δεδομένων. Διευκολύνουν την αλληλεπίδραση με μια βάση δεδομένων MongoDB.
Σε λίγα βήματα, θα μάθετε πώς να χρησιμοποιείτε το MongoDB σε μια εφαρμογή NestJS με το αποκλειστικό πακέτο NestJS mongoose.
Βήμα 1: Εγκατάσταση εξαρτήσεων
Πριν χρησιμοποιήσετε το Mongoose στην εφαρμογή NestJS, πρέπει να το εγκαταστήσετε μαζί με το εγγενές πακέτο NestJS.
Εγκαταστήστε το mongoose και το εγγενές πακέτο NestJS του χρησιμοποιώντας ο διαχειριστής πακέτων npm τρέχοντας:
npm εγκατάσταση @nestjs/μαγκούστα μαγκούστα
Βήμα 2: Σύνδεση στο MongoDB
Όταν ολοκληρωθεί η εγκατάσταση, μεταβείτε στο δικό σας app.module.ts αρχείο. Στη συνέχεια εισάγετε MongooseModule από @nest/mongoose:
εισαγωγή { MongooseModule } από '@nestjs/mongoose';
Στη συνέχεια, στον πίνακα εισαγωγών σας, καλέστε το forRoot μέθοδος για MongooseModule και περάστε το MongoDB URI σας ως όρισμα:
εισαγωγές: [MongooseModule.forRoot (process.env. MONGODB_URI)],
ο forRoot μέθοδος μοιράζεται τη σύνδεση της βάσης δεδομένων μέσω όλων των λειτουργικών μονάδων της εφαρμογής σας. Χρειάζεται ένα προαιρετικό αντικείμενο διαμόρφωσης. μπορείτε να μάθετε περισσότερα για αυτό στο του Mongoose τεκμηρίωση επιλογών.
Βήμα 3: Δημιουργία σχήματος Mongoose
Ένα σχήμα είναι ένα αντικείμενο JSON που ορίζει τη δομή και τα περιεχόμενα των δεδομένων σας. Θα χρειαστεί να δημιουργήσετε ένα για να ορίσετε πώς το Mongoose αποθηκεύει τα δεδομένα σας στη βάση δεδομένων MongoDB.
Στη λειτουργική μονάδα root της εφαρμογής σας, δημιουργήστε ένα "σχήματα" ντοσιέ. Αυτός ο φάκελος είναι όπου θα αποθηκεύσετε όλα τα αρχεία σχήματος.
Μέσα σου σχήματα φάκελο, δημιουργήστε ένα αρχείο σχήματος και ονομάστε το χρησιμοποιώντας τη σύμβαση ονομασίας NestJS (
Στη συνέχεια, προσθέστε τις ακόλουθες εισαγωγές στο αρχείο σχήματος:
εισαγωγή { Prop, Schema, SchemaFactory } από "@nestjs/mongoose";
εισαγωγή { Document } από "μαγκούστα";
ο Στήριγμα Ο διακοσμητής επισημαίνει ιδιότητες που σχολιάζει ως ιδιότητα στη βάση δεδομένων MongoDB.
ο Σχήμα Ο διακοσμητής επισημαίνει την τάξη που σχολιάζει ως σχήμα.
ο SchemaFactory Η κλάση περιέχει στατικές μεθόδους που χρησιμοποιούνται για τη δημιουργία μοντέλου.
Η μαγκούστα Εγγραφο αντιπροσωπεύει μια αντιστοίχιση ένας προς έναν σε έγγραφα όπως είναι αποθηκευμένα στο MongoDB. Θα το χρειαστείτε ως σχολιασμό τύπου.
Επειτα, δημιουργήστε μια τάξη, σημειώστε το με το Σχήμα διακοσμητής για να το επισημάνετε ως σχήμα Mongoose και να το εξαγάγετε:
@Σχήμα()
εξαγωγήτάξηΔιαδήλωση{}
Στη συνέχεια, δημιουργήστε και εξάγετε έναν τύπο ένωσης με την τάξη σας και Εγγραφο:
εξαγωγήτύπος DemoDocument = Επίδειξη & Έγγραφο;
Στη συνέχεια, προσθέστε τις ιδιότητες που θέλετε στην κλάση και σχολιάστε τις με το Στήριγμα διακοσμητής. Μπορείτε να περάσετε ένα προαιρετικό αντικείμενο διαμόρφωσης στο Στήριγμα διακοσμητής και ορίστε την ιδιότητα όπως απαιτείται:
@Σχήμα()
εξαγωγήτάξηΔιαδήλωση{
@Στήριγμα({ απαιτείται: αληθής })
ιδιοκτησία_1: συμβολοσειρά;
}
ο Μαγκούστα Η τεκμηρίωση καλύπτει το αντικείμενο διαμόρφωσης με περισσότερες λεπτομέρειες.
Τέλος, δημιουργήστε και εξάγετε ένα μοντέλο Mongoose μέσω του SchemaFactory'μικρό createForClass μέθοδο και περάστε την κλάση σας ως όρισμα:
εξαγωγήσυνθ DemoSchema = SchemaFactory.createForClass (Demo);
Το ολοκληρωμένο σχήμα σας θα πρέπει να μοιάζει με αυτό:
εισαγωγή { Prop, Schema, SchemaFactory } από '@nestjs/mongoose';
εισαγωγή { Document } από 'μαγκούστα';εξαγωγήτύπος DemoDocument = Επίδειξη & Έγγραφο;
@Σχήμα()
εξαγωγήτάξηΔιαδήλωση{
@Στήριγμα({ απαιτείται: αληθής })
ιδιοκτησία_1: συμβολοσειρά;@Στήριγμα({ απαιτείται: αληθής })
ιδιοκτησία_2: αριθμός;@Στήριγμα()
ιδιοκτησία_3: συμβολοσειρά;@Στήριγμα({ απαιτείται: αληθής })
ιδιοκτησία_4: boolean;
}
εξαγωγήσυνθ DemoSchema = SchemaFactory.createForClass (Demo);
Βήμα 4: Καταχώρηση του Σχήματος
Μεταβείτε στο φάκελο της λειτουργικής μονάδας σας και προσθέστε τις ακόλουθες εισαγωγές:
εισαγωγή { MongooseModule } από '@nestjs/mongoose';
εισαγωγή { Demo, DemoSchema } από '../schemas/demo.schema';
Στη συνέχεια, δημιουργήστε ένα "εισαγωγές” συστοιχία μέσα στο @μονάδα μέτρησης διακοσμητής. Στη συνέχεια, μέσα στον πίνακα, καλέστε το για Χαρακτηριστικό μέθοδος για MongooseModule.
ο για Χαρακτηριστικό μέθοδος παίρνει μια σειρά από μοντέλα Mongoose. Περάστε σε ένα αντικείμενο διαμόρφωσης με a όνομα η ιδιότητα ορίζεται στο όνομα της κλάσης σχήματός σας και α σχήμα η ιδιότητα έχει οριστεί στο σχήμα που δημιουργήσατε:
MongooseModule.για Χαρακτηριστικό([{ όνομα: Demo.name, σχήμα: DemoSchema }]),
Βήμα 5: Έγχυση του μοντέλου Mongoose
Στη συνέχεια, θα χρειαστεί να εισάγετε το μοντέλο Mongoose για να ενεργοποιήσετε το ερώτημα της βάσης δεδομένων σας καλώντας μεθόδους Mongoose στο μοντέλο.
Μεταβείτε στην κατηγορία υπηρεσιών της μονάδας σας και προσθέστε τις ακόλουθες εισαγωγές:
εισαγωγή { Μοντέλο } από 'μαγκούστα';
εισαγωγή { InjectModel } από '@nestjs/mongoose';
εισαγωγή { Demo, DemoDocument } από '../schemas/demo.schema';
Χρησιμοποιήστε το Μοντέλο διεπαφή ως ορισμός τύπου για το μοντέλο σας, δίνοντάς του πρόσβαση στις μεθόδους Mongoose.
ο InjectModel ο διακοσμητής εισάγει το μοντέλο Mongoose στον κατασκευαστή της κατηγορίας υπηρεσιών σας.
Στη συνέχεια, δημιουργήστε ένα κατασκευαστής μέσα στην κατηγορία υπηρεσιών σας. Θα πρέπει να πάρει α ιδιωτικός μεταβλητή ως όρισμα, α Μοντέλο με ένα γενικό τύπο DemoDocument. Σημειώστε την ιδιωτική σας μεταβλητή με το InjectModel διακοσμητής και περάστε το όνομα της κλάσης σχήματος ως όρισμα:
@Ενέσιμα()
εξαγωγήτάξηDemoService{
κατασκευαστής(
@InjectModel(Demo.name)
ιδιωτικό demoModel: Μοντέλο<DemoDocument>,
) {}
}
Μπορείτε να ρωτήσετε τη βάση δεδομένων MongoDB καλώντας μεθόδους Mongoose στην ιδιωτική σας μεταβλητή (demoModel).
Πλεονεκτήματα της χρήσης MongoDB
Εκτός από την ισχυρή διαδικτυακή του κοινότητα και την ευκολία χρήσης, το MongoDB παρέχει υψηλή διαθεσιμότητα και σταθερότητα δεδομένων. Προσφέρει επιταχυνόμενες αναλύσεις, συγκέντρωση δεδομένων και πολλά άλλα, καθιστώντας την ιδανική βάση δεδομένων για τα έργα σας.