0%

使用 Mongoose 实现 MongoDB 数据库增删改查

摘要:在 Nodejs 环境下,使用 Mongoose 驱动 MongoDB 数据库,实现数据库增删改查。

概述

Mongoose:一款 MongoDB 第三方驱动,基于官方驱动进行了优化,提升了易用性。

MongoDB:一款 NOSQL 数据库,用于数据存储。

本文使用 Mongoose 的操作摘要:

1、连接数据库;

2、新增数据;

3、查询数据

4、修改数据

5、删除数据

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
//导入 mongoose 包
const mongoose = require("mongoose");

//指定数据库访问地址、指定数据库
const DB_URL = "mongodb://localhost:27017/mydb";

// 使用 connect()方法连接数据库,对返回的 promises 对象设定回调函数
mongoose.connect(DB_URL).then(
() => {
console.log("数据库连接成功");
},
(err) => {
console.log("数据库连接失败");
}
);

// 创建schema,其会映射到一个collection,并定义这个collection里的文档的构成
let schema = new mongoose.Schema({
title: String,
content: String,
time: String,
});

// 将schema编译为模型
const blogs = mongoose.model("blogs", schema, "blogs");

//1 查询全部文档
blogs.find({}, function (err, res) {
console.log(res);
});

//2 新增一篇文档,2种方案:
// (1)使用模型实例化一个文档对象,使用对象的 save()方法保存到数据库
const postdata = new blogs({
title: "post 2022",
content: "hello here",
time: "20220326",
});
postdata.save();

// (2)使用模型insertMany()方法,保存数据并打印回调
blogs.insertMany(
{ title: "post 2023", content: "hello here", time: "20230326" },
function (err, rs) {
console.log("保存成功:\n", rs);
}
);

// 3 删除一条指定数据
blogs.deleteOne({ _id: "623de66ed61786a82df60832" }, function (err, rs) {
console.log("已经删除一条数据:\n", rs);
});

// 4、删除多条数据
blogs.deleteMany({ title: "post 2023" }, function (err, res) {
console.log("已经删除符合条件的数据:\n", res);
});