Mongoose is a popular MongoDB object modeling tool for Node.js applications. It provides a schema-based solution to model your application data and offers a set of features to interact with MongoDB in a more convenient way. Here's a step-by-step guide on how to use Mongoose with MongoDB in a Node.js application:
Install Dependencies: Start by installing the required npm packages for your project. In your project directory, run:
bashnpm install mongoose
Set Up MongoDB: Ensure that you have a MongoDB server running. You can either set up a local MongoDB instance or use a cloud-based solution like MongoDB Atlas.
Create a Connection:
In your Node.js application, create a connection to your MongoDB database using Mongoose. This is typically done in your main application file (e.g., app.js
or index.js
):
javascriptconst mongoose = require('mongoose');
const mongoURI = 'your_mongodb_connection_string';
mongoose.connect(mongoURI, { useNewUrlParser: true, useUnifiedTopology: true });
const db = mongoose.connection;
db.on('error', console.error.bind(console, 'MongoDB connection error:'));
db.once('open', () => {
console.log('Connected to MongoDB');
});
Replace 'your_mongodb_connection_string'
with the actual connection string for your MongoDB instance.
Create a Mongoose Schema: Define a Mongoose schema to model the structure of your data. This is where you define the fields, types, and any validations for your documents. For example:
javascriptconst mongoose = require('mongoose');
const userSchema = new mongoose.Schema({
name: String,
email: { type: String, required: true, unique: true },
age: Number,
});
const User = mongoose.model('User', userSchema);
module.exports = User;
Perform CRUD Operations: Now that you have a Mongoose model, you can perform CRUD (Create, Read, Update, Delete) operations on your MongoDB database. Here are some examples:
Create:
javascriptconst newUser = new User({ name: 'John Doe', email: 'john@example.com', age: 25 });
newUser.save((err, user) => {
if (err) return console.error(err);
console.log('User created:', user);
});
Read:
javascriptUser.find({ name: 'John Doe' }, (err, users) => {
if (err) return console.error(err);
console.log('Users found:', users);
});
Update:
javascriptUser.updateOne({ name: 'John Doe' }, { age: 26 }, (err, result) => {
if (err) return console.error(err);
console.log('User updated:', result);
});
Delete:
javascriptUser.deleteOne({ name: 'John Doe' }, (err) => {
if (err) return console.error(err);
console.log('User deleted');
});
These are basic examples, and Mongoose provides many other features and options for working with MongoDB. Refer to the Mongoose documentation for more details and advanced usage.