One of the advantages of using Mongoose to manage your MongoDB database is that you can implement strict data schemas to make an app more robust. Let's start by creating a Thing schema for every Thing put up for sale on our app.
Let's look at how to create a thing schema in the next video!
Inside your backend folder, create a new folder called models , and within that new folder, a file called thing.js :
const mongoose = require('mongoose');
const thingSchema = mongoose.Schema({
title: { type: String, required: true },
description: { type: String, required: true },
imageUrl: { type: String, required: true },
userId: { type: String, required: true },
price: { type: Number, required: true },
});
module.exports = mongoose.model('Thing', thingSchema);What this does is:
Create a data schema that contains the fields for each Thing , their type, and whether or not they are a required field.
Export that schema as a Mongoose model, making it available for your Express app.
This model allows you to enforce your data structure and makes read and write operations to the database far simpler, as you will see in the next chapters.
Mongoose's Schema method lets you create a data schema for your MongoDB database.
The model method turns that schema into a usable model.
Now that you are all set with the data schema, let's see how to save and retrieve data from the database!