📜  Nodejs – 使用 MongooseJS 将 MongoDB 与 Node 应用程序连接起来(1)

📅  最后修改于: 2023-12-03 14:44:44.220000             🧑  作者: Mango

Nodejs – 使用 MongooseJS 将 MongoDB 与 Node 应用程序连接起来

简介

Node.js 是一种流行的服务器端运行时环境,用于编写高度可扩展的 Web 应用程序。其中,MongooseJS 是 Node.js 的一个对象模型和工具套件,是一种方便的方法来管理 MongoDB 数据库。本文将介绍如何使用 MongooseJS 将 MongoDB 和 Node.js 应用程序连接起来。

安装 MongoDB

MongooseJS 依赖于 MongoDB,因此,我们首先需要安装 MongoDB。在 Ubuntu 系统上,可以使用以下命令进行安装:

sudo apt-get install mongodb

在 Windows 系统上,可以从 官方网站 下载并安装 MongoDB。

安装 MongooseJS

在 Node.js 应用程序中使用 MongooseJS,我们需要先安装 MongooseJS,可以使用以下命令进行安装:

npm install mongoose --save
连接到 MongoDB

在 Node.js 应用程序中,连接到 MongoDB 非常简单。只需要先引入 mongoose 模块,然后使用 mongoose.connect() 方法连接到 MongoDB 数据库。

const mongoose = require('mongoose');

mongoose.connect('mongodb://localhost/mydatabase', {
    useNewUrlParser: true,
    useUnifiedTopology: true
}).then(() => {
    console.log("Connected to MongoDB database");
}).catch((err) => {
    console.log("Error connecting to MongoDB", err);
});

其中,mongodb://localhost/mydatabase 是 MongoDB 的连接 URL,表示连接到本地名为 mydatabase 的数据库。第二个参数是一些选项,包括使用新的 URL 解析器和统一的拓扑结构。(在 MongooseJS 5.x 版本以上,这两个选项变成了默认选项,可以不用设置)。

定义数据模型

在 MongooseJS 中,我们可以定义数据模型,即在 MongoDB 中存储的数据类型。例如,我们可以定义一个简单的 User 模型,每个用户都包含有一个名称和一个年龄:

const mongoose = require('mongoose');

const UserSchema = new mongoose.Schema({
    name: String,
    age: Number
});

const User = mongoose.model('User', UserSchema);

module.exports = User;

在上面代码中,通过 new mongoose.Schema({...}) 定义了 User 的数据模型,之后使用 mongoose.model('User', UserSchema) 方法创建了一个用户模型,并通过模块导出的形式进行了暴露。

CRUD 操作

在 MongooseJS 中,实现 CRUD(增、删、改、查) 操作非常简单。下面我们分别介绍如何实现这些操作。

增加数据
const mongoose = require('mongoose');
const User = require('./models/user');

// 新建用户
const newUser = new User({
    name: 'Tom',
    age: 23
});

// 保存用户
newUser.save().then(() => {
    console.log('New user created');
}).catch((err) => {
    console.log(err);
});
查找数据
const mongoose = require('mongoose');
const User = require('./models/user');

// 查找所有用户
User.find().then((users) => {
    console.log(users);
}).catch((err) => {
    console.log(err);
});

// 查找单个用户
User.findOne({ name: 'Tom' }).then((user) => {
    console.log(user);
}).catch((err) => {
    console.log(err);
});
更新数据
const mongoose = require('mongoose');
const User = require('./models/user');

// 更新单个用户
User.findOneAndUpdate({ name: 'Tom' }, { age: 24 }).then(() => {
    console.log('User updated');
}).catch((err) => {
    console.log(err);
});
删除数据
const mongoose = require('mongoose');
const User = require('./models/user');

// 删除单个用户
User.findOneAndDelete({ name: 'Tom' }).then(() => {
    console.log('User deleted');
}).catch((err) => {
    console.log(err);
});
结论

通过 MongooseJS,我们可以使用 Node.js 更方便地管理 MongoDB 数据库。无论您是新手还是有经验的 Node.js 开发人员,使用 MongooseJS 都是一种简单和易于实现的数据方案。