Integrējiet savu Node.js lietojumprogrammu ar MongoDB datu bāzi, izmantojot Mongoose.

Datu pārvaldība MongoDB datu bāzē var būt sarežģīta, jo īpaši, ja tiek izmantoti sarežģīti datu modeļi. MongoDB ir datu bāze bez shēmām, kas nozīmē, ka datus var pievienot, neievērojot noteiktu struktūru. Šī elastība padara MongoDB ideālu lielu datu apjomu glabāšanai, kā arī apgrūtina datu pārvaldību.

Mongoose nodrošina uz shēmu balstītu risinājumu, kas palīdz nodrošināt, ka MongoDB saglabātie dati ir konsekventi un pareizi formatēti. Izmantojot Mongoose, varat definēt shēmu saviem datu modeļiem, kas nosaka datu struktūru un noteikumus, kā šie dati ir formatējami. Šeit jūs izpētīsit, kā lietot Mongoose Express lietojumprogrammā.

Jūsu attīstības vides iestatīšana

Pirms Mongoose izmantošanas tas ir jāinstalē kā atkarība savā projektā.

Jūs varat instalēt Mongoose, izpildot tālāk norādīto komandu:

npm instalēt mongoose

Pēc Mongoose instalēšanas savā projektā lietojumprogramma ir jāsavieno ar MongoDB, izmantojot Mongoose.

instagram viewer

Mongoose izveido savienojumu ar MongoDB datu bāzi, izmantojot savienot metode, kas izmanto MongoDB URI kā argumentu.

Šeit ir piemērs:

// index.js
konst mangusts = pieprasīt("mangusts")

mangoose.connect("mongodb://127.0.0.1:27017/example", () =>
konsole.log("Veiksmīgi izveidots savienojums ar datu bāzi")
);

Iepriekš minētais koda bloks izveido savienojumu ar vietējo MongoDB gadījumu un reģistrē veiksmes ziņojumu, kad jūsu lietojumprogramma veiksmīgi izveido savienojumu ar MongoDB.

Mangusa modeļa izveide

Mongoose modelis ir uz shēmu balstīta klase Mongoose, kas ļauj mijiedarboties ar MongoDB kolekciju.

Mongoose shēma nosaka to dokumentu struktūru, kurus varat glabāt MongoDB kolekcijā un nodrošina saskarni tajā esošo dokumentu izveidei, lasīšanai, atjaunināšanai un dzēšanai kolekcija.

Definējot Mongoose modeli, jūs definējat shēmu šajā kolekcijā esošajiem dokumentiem, tostarp rekvizītus, to veidus un jebkādas validācijas.

Šis ir Mongoose modeļa piemērs Lietotājs kolekcija:

konst mangusts = pieprasīt("mangusts");

konst userSchema = mangusts. Shēma({
vārds: {
veids: Stīga,
nepieciešams: [taisnība, "Vārds ir nepieciešams"],
},
e-pasts: {
veids: Stīga,
nepieciešams: taisnība,
},
vecums: {
veids: Numurs,
apstiprināt: {
pārbaudītājs: funkciju (vērtību) {
atgriezties vērtība > 0;
},
ziņa: () =>"Lūdzu, ievadiet derīgu vecumu",
},
},
});

konst Lietotājs = mangoose.model("Lietotājs", userSchema);

modulis.exports = lietotājs;

Iepriekš minētais koda bloks definē Mongoose shēmu ar trim īpašībām: nosaukums, e-pasts, un vecums. Katram īpašumam ir noteikts noteikumu kopums, kas jāievēro, kartējot vērtību uz tā norādīto lauku. Šeit ir noteikumu sadalījums:

  • nosaukums: nosaukums īpašums ir a virkne tips atzīmēts kā nepieciešams, kas nozīmē, ka šim laukam ir jāpievieno virkne. Ja atstājat lauku tukšu vai ievadāt citu JavaScript datu tips, Mongoose izmet kļūdu.
  • e-pasts: e-pasts īpašums ir a virkne tips atzīmēts kā nepieciešams. Tam nav citu validācijas noteikumu, taču praksē jums ir jāpārbauda, ​​vai e-pasts ir pareizs. Varat apstiprināt e-pastu izmantojot regex izteiksmes vai trešo pušu bibliotēkas, piemēram, klases pārbaudītājs.
  • vecums: vecums īpašums ir a numuru tips ar pielāgotu validācijas kārtulu, kas pārbauda, ​​vai laukam kartētā vērtība ir lielāka par nulli. Ja vērtība neiztur validāciju, Mongoose kopā ar ziņojumu rada kļūdu Lūdzu, ievadiet derīgu vecumu. Varat atstāt šo lauku tukšu, jo tas nav atzīmēts kā nepieciešams.

Pēc shēmas definēšanas koda bloks izveido Mongoose modeli, ko sauc Lietotājs izmantojot mangusts.modelis() metodi. Šai metodei ir divi argumenti: modeļa nosaukums un shēma, kas jāizmanto dokumentiem.

Visbeidzot, Lietotājs modelis tiek eksportēts uz citām jūsu lietojumprogrammas daļām.

Mijiedarbība ar MongoDB, izmantojot Mongoose

Ja jūsu lietojumprogramma ir savienota ar MongoDB datu bāzi un jūsu modelis ir izveidots un pieejams citām lietojumprogrammas daļām, varat mijiedarboties ar savu datu bāzi, izmantojot Mongoose piedāvātās metodes.

Šajā apmācībā jūs uzstāsies CRUD operācijas MongoDB datu bāzē.

Piezīme: noteikti importējiet savu Mongoose modeli jebkurā modulī, kurā veiksiet CRUD darbības.

Piemēram:

// router.js

konst Lietotājs = pieprasīt("./userModel")

Dokumenta izveide

Dokuments ir modeļa eksemplārs. Ir vairāki veidi, kā izveidot un saglabāt dokumentu MongoDB, izmantojot Mongoose.

Pirmkārt, varat izveidot sava modeļa klases gadījumu un pēc tam izsaukt saglabāt metode uz tā.

Piemēram:

//Jauna lietotāja izveide
ļaut lietotājs = jauns Lietotājs({
vārds,
e-pasts,
vecums,
});

//Lietotāja saglabāšana datu bāzē
lietotājs
.save()
.hen(() => {
konsole.log("Lietotājs veiksmīgi izveidots");
})
.catch((kļūda) => {
//roktura kļūda
});

Iepriekš minētais koda bloks izveido un saglabā jaunu Lietotājs dokumentu savā MongoDB datubāzē.

Varat arī saglabāt datus savā datu bāzē, izmantojot izveidot metodi. The izveidot metode izveido jūsu modeli un izsauc saglabāt metode uz tā. Vārdu sakot, tas apvieno abas iepriekš minētās tehnikas darbības.

Piemēram:

User.create({vārds, e-pasts, vecums}, (kļūda, dati) => {
ja (kļūda) mestjaunsKļūda("Iekšējā servera kļūda");

konsole.log(`Lietotājs veiksmīgi izveidots: ${data}`);
});

Iepriekš minētais koda bloks izveido jaunu Lietotājs dokuments ar rekvizītiem, kas nodots kā arguments izveidot metodi.

Varat arī saglabāt datus savā datu bāzē, izmantojot ievietotDaudzi metodi. Lai gan šī metode ir ideāla tikai datu saglabāšanai partijās.

Piemēram:

User.insertMany(
[
{ vārds, e-pasts, vecums },
{ name_1, email_1, age_1 },
],
(kļūda, rezultāts) => {
ja (kļūda) {
//roktura kļūda
} cits {
//Nosūtīt rezultātus
}
}
);

Iepriekš esošais koda bloks izveido divus jaunus dokumentus Lietotājs kolekcija, izmantojot masīvu, kas tika nodots kā arguments ievietotDaudzi metodi.

Dokumenta lasīšana

Izmantojot Mongoose, varat piekļūt visiem saglabātajiem dokumentiem savā MongoDB datubāzē atrast metodi.

Piemēram:

User.find({})
.hen((datus) => {
konsole.log (dati);
})
.catch((kļūda) => {
//roktura kļūda
});

Iepriekš esošais koda bloks atgriezīs visus dokumentus Lietotājs kolekcija.

Varat arī atrast visus dokumentus, kas atbilst noteiktam vaicājumam, nosūtot vaicājumu meklēšanas metodei.

Piemēram:

// atrast visus dokumentus, kuru vecums ir vismaz 18 gadi
User.find({ vecums: { $gte: 18 } })
.hen((datus) =>konsole.log (dati))
.catch((kļūda) =>konsole.log (kļūda));

Iepriekš esošais koda bloks atgriezīs visus dokumentus, kuru vecuma vērtība ir lielāka par 18 gadiem Lietotājs kolekcija.

Varat arī lasīt atsevišķus ierakstus, izmantojot findById metodi un dokumenta ID nodošanu kā argumentu vai izmantojot atrast vienu metodi un filtra nodošanu kā argumentu.

Piemēram:

//findById
User.findById (id, (kļūda, rezultāts) => {
ja (rezultāts) konsole.log (rezultāts);
ja (kļūda) konsole.error (kļūda)
});

//findOne
User.findOne({ e-pasts: "dž[email protected]" }).tad((lietotājs) => {
ja (!lietotājs) {
//roktura kļūda
}
//nosūtīt atbildi
});

Iepriekš minētajā koda blokā findById metode atgriež dokumentu ar atbilstošu ID. The atrast vienu metode atgriež pirmo dokumentu, kuram ir e-pasts [email protected].

Dokumenta atjaunināšana

Varat atjaunināt dokumentu MongoDB ar Mongoose, izmantojot findByIdAndUpdate metodi. Šī metode izmanto ID un objektu ar atjauninātu informāciju.

Piemēram:

User.findByIdAndUpdate (id, req.body, (err, doc) => {
ja (doc) {
//Nosūtīt atbildi
}
ja (kļūda) {
//roktura kļūda
}
});

Iepriekš minētais koda bloks atjaunina dokumentu, kura ID atbilst norādītajam ID ar sniegto atjaunināšanas objektu (req.body).

Dokumenta dzēšana

Varat izdzēst dokumentu MongoDB ar Mongoose, izmantojot findByIdAndDelete metodi. Šī metode izmanto ID kā argumentu un izdzēš dokumentu ar atbilstošo ID.

Piemēram:

User.findByIdAndDelete (id, (kļūda, rezultāts) => {
ja (rezultāts) {
//Rokturis rezultāts
}
ja (kļūda) {
//Roktura kļūda
}
});

Iepriekš esošais koda bloks izdzēš dokumentu ar norādīto ID no jūsu MongoDB datu bāzes.

Mongoose izmantošana jūsu Express lietojumprogrammās

Šajā rakstā ir sniegts pārskats par to, kā jūs varētu izmantot Mongoose savā ātrā lietojumprogrammā. Norādīts, kā izveidot savienojumu ar MongoDB, strukturēt un apstiprināt datus, kas saglabāti jūsu MongoDB datu bāzē, un veikt vienkāršas CRUD darbības.

Izmantojot Mongoose savās Express lietojumprogrammās, varat vienkāršot un racionalizēt mijiedarbību starp lietojumprogrammu un MongoDB datu bāzi.