sql >> Databasteknik >  >> NoSQL >> MongoDB

Skapa, läs, uppdatera, radera data genom att använda Node.js - Mongoose

I den här artikeln har vi en butik och vi kommer att spara dess saker i databasen för användning av CRUD bearbeta.
om du behöver källan till min kod, kolla gärna min GitHub länk här

Först bör vi installera mongoose-paketet i applikationen med terminalen genom att använda följande kod:

npm install mongoose

Sedan kör vi servern genom express och skapar vår modells fil och skriver kommandona enligt nedan:

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const productSchema = new Schema({
  title: {
    type: String,
    required: true
  },
  price: {
    type: Number,
    required: true
  },
  description: {
    type: String,
    required: true
  },
  imageUrl: {
    type: String,
    required: true
  }
});

module.exports = mongoose.model('Product',productSchema);

Efter det, i styrenhetens fil, skriver vi min CRUDs kod steg för steg. Det är värt att nämna att genom att använda mallmotor EJS vi hittar tillgång till front-end-sektionen och utbyter nödvändiga data för att importera och läsa igenom URL.
I början av kontrollfilen kräver vi vår fördefinierade modell i Produkten variabel för att kunna kommunicera med databasen i alla funktioner. Det bör noteras att det är vanligt med versaler i variabler som innehåller modeller bland webbutvecklare, men det är inte obligatoriskt.

Skapa:

för att spara data i databasen bör vi först spara mottagna data i variabeln. Därefter definierar vi en variabel som heter productData, och genom att använda new kommando importerar vi vår mottagna data till vår modell (produkt). Efter det använder vi Async/Await lovar att skriva ett sparkommando för att lagra våra data.

exports.postAddProduct = async (req, res, next) => {
  const title = req.body.title;
  const imageUrl = req.body.imageUrl;
  const price = req.body.price;
  const description = req.body.description;
  const productData = new Product({
    title: title,
    price: price,
    description: description,
    imageUrl: imageUrl
  });
  try {
    const result = await productData.save();
    res.redirect("/admin/products");
  } catch (err){
    console.log(err);
  }
};

När vi sparar data i modellen är de första variablerna våra fältnamn som vi skapar i vår modell i de första stegen, och de andra variablerna är våra mottagna data om båda variablerna har samma namn, vi kan skriva variabelns namn bara en gång enligt nedan:

const productData = new Product({
    title,
    price,
    description,
    imageUrl
  });

Läs:

För att hämta våra data från databasen kan vi använda find kommando på modellens variabel enligt nedan:

exports.getAdminProducts = async (req, res, next) => {

  try {
    const products = await Product.find()

    res.render("admin/products", {
      pageTitle: "Admin Products",
      products: products,
      path: "/admin/products",
    });
  } catch (err) {
    console.log(err);
  }
};

För att läsa ett specialiserat fält från vår databas kan vi använda select() kommando för att hämta våra data. Som i exemplet nedan har vi bara läst namnet och priset på varje produkt:

Const products = await Product.find.select(‘title price’)

Uppdatering:

För att uppdatera, först, som att skapa, lägger vi in ​​vår data i variablerna, sedan använder vi det ID vi fick, som indikerar vilken produkt vi vill uppdatera, söker vi i databasen och utför uppdateringsoperationen. För det här steget använder vi findByIdAndUpdate() kommando, där vi i början matar in mitt mottagna ID och sedan skriver vi hela data för att uppdatera.

exports.postEditProduct = async (req, res, next) => {
  const productId = req.body.productId;
  const updatedTitle = req.body.title;
  const updatedPrice = req.body.price;
  const updatedImageUrl = req.body.imageUrl;
  const updatedDesc = req.body.description;

  try {
    await Product.findByIdAndUpdate(productId, {
      title: updatedTitle,
      price: updatedPrice,
      description: updatedDesc,
      imageUrl: updatedImageUrl
    });
    res.redirect("/admin/products");
  } catch (err) {
    console.log(err)
  }
};

Ta bort:

I det här avsnittet lägger vi först in mitt mottagna ID i productId variabel, sedan med findByIdAnRemove() kommandot hittar vi och tar bort produkten.

exports.postDeleteProduct = async (req, res, next) => {
  const productId = req.body.productId;
  try {
    await Product.findByIdAndRemove(productId);
    res.redirect("/admin/products");
  } catch (err) {
    console.log(err)
  }  
};

I den här artikeln försökte vi beskriva CRUD operation med NodeJS och MongoDB utan att gå in på detaljerna, såsom validering av inmatningsdata.
Jag hoppas att den här artikeln var till hjälp för dig, och om du har några frågor, tveka inte och kontakta mig.

Vänliga hälsningar,
Sasan Dehghanian


  1. Mongoose, Välj ett specifikt fält med hitta

  2. Fjäderdata Matcha och filtrera kapslad array

  3. Hitta dubbletter av webbadresser i mongodb

  4. glesa index och nollvärden i mongo