From bf487f01af29faf4c479243fab787ca519a11e0b Mon Sep 17 00:00:00 2001 From: Sahil Date: Sat, 22 Jun 2024 19:32:31 +0530 Subject: [PATCH] Lab completed --- index.js | 36 ++++++++++++++++++++++++++++++++---- models/Recipe.model.js | 39 ++++++++++++++++++++++++++++++++++++--- 2 files changed, 68 insertions(+), 7 deletions(-) diff --git a/index.js b/index.js index d92f163..80d8189 100644 --- a/index.js +++ b/index.js @@ -1,10 +1,8 @@ const mongoose = require('mongoose'); - // Import of the model Recipe from './models/Recipe.model.js' const Recipe = require('./models/Recipe.model'); // Import of the data from './data.json' const data = require('./data'); - const MONGODB_URI = 'mongodb://localhost:27017/recipe-app'; // Connection to the database "recipe-app" @@ -13,10 +11,40 @@ mongoose .then(x => { console.log(`Connected to the database: "${x.connection.name}"`); // Before adding any recipes to the database, let's remove all existing ones - return Recipe.deleteMany() + return Recipe.deleteMany(); + }) + .then(() => { + // Add new recipes after existing ones are deleted + return Recipe.insertMany(data); + }) + .then(() => { + // Find and display all recipes + return Recipe.find(); + }) + .then(recipes => { + recipes.forEach(r => { + console.log(r.title); + }); + + // Update a recipe + return Recipe.findOneAndUpdate( + { title: "Rigatoni alla Genovese" }, + { duration: 100 }, + { new: true } + ); + }) + .then(updatedRecipe => { + console.log('Updated recipe:', updatedRecipe); + + // Delete a recipe + return Recipe.deleteOne({ title: 'Carrot Cake' }); + }) + .then(() => { + console.log('Carrot Cake recipe has been successfully deleted!'); }) .then(() => { - // Run your code here, after you have insured that the connection was made + // Close the connection + return mongoose.connection.close(); }) .catch(error => { console.error('Error connecting to the database', error); diff --git a/models/Recipe.model.js b/models/Recipe.model.js index 7b2ad14..9388cca 100644 --- a/models/Recipe.model.js +++ b/models/Recipe.model.js @@ -1,10 +1,43 @@ const mongoose = require('mongoose'); -const Schema = mongoose.Schema; +const { Schema } = mongoose; const recipeSchema = new Schema({ - // TODO: write the schema + title: { + type: String, + required: true, + unique: true, + }, + level: { + type: String, + enum: ['Easy Peasy', 'Amateur Chef', 'UltraPro Chef'], + }, + ingredients: { + type: [String], + }, + cuisine: { + type: String, + required: true, + }, + dishType: { + type: String, + enum: ['breakfast', 'main_course', 'soup', 'snack', 'drink', 'dessert', 'other'], + }, + image: { + type: String, + default: 'https://images.media-allrecipes.com/images/75131.jpg', + }, + duration: { + type: Number, + min: 0, + }, + creator: { + type: String, + }, + created: { + type: Date, + default: Date.now, + }, }); const Recipe = mongoose.model('Recipe', recipeSchema); - module.exports = Recipe;