Giter VIP home page Giter VIP logo

lab-mongoose-recipes's Introduction

logo_ironhack_blue 7

Mongoose Recipes

Introduction

thai_style_chicken_noodle_soup_pieces_recipe_web

We've learned how to use Mongoose to create Schemas and then interact with our MongoDB database. In the following exercise, we will practice how to implement this by creating awesome recipes.

Requirements

  • Fork this repo
  • Clone this repo

Submission

  • Upon completion, run the following commands:

    git add .
    git commit -m "Completed lab"
    git push origin master
    
  • Create Pull Request so your TAs can check up your work.

Instructions

Iteration 1 - Recipe Schema

Create a Recipe model inside of the file /models/Recipe.model.js. The schema should have the following fields:

  • title - Type String. It should be required and unique.
  • level - Type String. Can be one of the following values: Easy Peasy - Amateur Chef - UltraPro Chef (remember the enum validator ๐Ÿ˜‰).
  • ingredients - Type Array of Strings (represented as [ String ]).
  • cuisine - Type String. Should be required.
  • dishType - Type String. Possible values: breakfast, main_course, soup, snack, drink, dessert or other.
  • image - Type String. Default value: "https://images.media-allrecipes.com/images/75131.jpg".
  • duration - Type Number. The minimum value should be 0.
  • creator - Type String.
  • created - Type Date. By default, today.

Iteration 2 - Create a recipe

In index.js, after the connection to the database has been established, you should add a new recipe document to the database by calling the Model.create static, passing it the recipe details as an object. After inserting the recipe, you should console.log the title of the recipe.

You can use MongoDB Compass to double check that everything is working as intended.

To run your code, remember you should use:

$ node index.js

Tip: When you have successfully created a new recipe (you see it in the database using Compass tool), you might want to comment out this step. The reason for this is that next time when you run $ node index.js, it will try to create a new recipe with the same name and you will get an error in the terminal related to the duplicate keys - the title should be unique, and the dish with that title already exists in the database.

Iteration 3 - Insert multiple recipes

We are importing an array of recipes form the data.json file. Using the Model.insertMany static, you should add the entire array to the database. After inserting the documents, print the title of each recipe to the console.

Tip: Follow the same tip as in the previous step.

Iteration 4 - Update recipe

Now you should have six different recipes in the database, but there was a mistake in one of them. The Rigatoni alla Genovese does not take that long. You should update the duration field and set it to 100. You might want to use the Model.findOneAndUpdate static. After updating it, print a success message!

Iteration 5 - Remove a recipe

Oh oh! The Carrot Cake is no longer available, so we need to remove it from the database. Using the Model.deleteOne static, remove that recipe from the database and display a success message after doing it!

Iteration 6 - Close the Database

After completing every task, you need to close the database. Otherwise, the connection will stay open until the node.js process dies. Pay attention to the asynchronicity of the operation. You should only close the connection after everything is done! ๐Ÿ˜‰

Happy coding! ๐Ÿ’™

lab-mongoose-recipes's People

Contributors

abernier avatar claraeclara avatar ironhack-edu avatar josecarneiro avatar marcospalaciosiii avatar mc100s avatar papuarza avatar sandrabosk avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.