【Node.js从基础到高级运用】十、Node.js中的数据库操作

简介

MongoDB 是一种非关系型数据库(NoSQL),它以其灵活的文档结构、高性能、高可用性、易扩展性而闻名。对于许多Node.js开发人员来说,MongoDB 是后端存储的首选解决方案,因为它可以存储的 JSON-like 文档与 JavaScript 对象的结构非常相似,这使得在 Node.js 应用程序中使用 MongoDB 变得非常直观。

安装 MongoDB

安装Mongodb参考https://blog.csdn.net/muguli2008/article/details/80591256
下载4.x版本用来学习,其他不再赘述。

安装完成,并添加系统环境变量之后:

  • 打开cmd输入mongod -version

在这里插入图片描述

  • 成功后,输入mongod挂载mongodb

在这里插入图片描述

开始使用

在你的项目根目录下运行以下命令安装 MongoDB 驱动

npm install mongodb@4.4.0 -S

编写测试代码

创建一个新的 Node.js 文件,比如 index.js,并导入 mongodb 模块。

const { MongoClient } = require('mongodb');

// MongoDB 连接 URL,通常以 mongodb:// 开头
// 这里假设 MongoDB 运行在本地机器上,默认端口 27017
// 并尝试连接到一个名为 mydb 的数据库
const url = 'mongodb://localhost:27017';
const dbName = 'mydb';

async function main() {
    // 创建 MongoClient 对象
    const client = new MongoClient(url);

    try {
        // 使用 connect 方法连接到服务器
        await client.connect();
        console.log("Connected successfully to server");

        // 选择数据库
        const db = client.db(dbName);

        // 在这里添加你的数据库操作
        // 例如,插入一个文档到某个集合
        const collection = db.collection('documents');
        const insertResult = await collection.insertOne({a: 1});
        console.log('Insert result:', insertResult);

    } finally {
        // 确保在程序结束时关闭数据库连接
        await client.close();
    }
}

main().catch(console.error);

查看数据库

使用 MongoDB 客户端(MongoDB Shell)

回到开启mogo的CMD界面,输入show dbs
在这里插入图片描述
可以看到名为 mydb 的数据库已经创建成功!

接着输入use mydb进入该数据库中,再次输入show collections查看我们创建的集合:
在这里插入图片描述
在代码中通过const insertResult = await collection.insertOne({a: 1});插入了一条数据,
通过db.documents.find()命令查看 documents 集合中的所有文档:
在这里插入图片描述

通过 Node.js 应用程序

如果你希望通过 Node.js 应用程序查询 documents 集合中的数据,可以使用以下代码示例:

const { MongoClient } = require('mongodb');
const url = 'mongodb://localhost:27017';
const dbName = 'mydb';

async function findDocuments() {
    const client = new MongoClient(url);

    try {
        await client.connect();
        console.log("Connected successfully to server");

        const db = client.db(dbName);
        const collection = db.collection('documents');

        // 查找集合中的所有文档
        const findResult = await collection.find({}).toArray();
        console.log('Found documents =>', findResult);

    } finally {
        await client.close();
    }
}

findDocuments().catch(console.error);

完整的CRUD(创建、读取、更新、删除)示例

const { MongoClient } = require('mongodb');
const url = 'mongodb://localhost:27017';
const dbName = 'mydb';

async function main() {
    const client = new MongoClient(url);
    try {
        await client.connect();
        console.log("Connected correctly to server");
        const db = client.db(dbName);
        const collection = db.collection('documents');

        // C: 创建并插入文档
        await collection.insertMany([{ a: 1 }, { a: 2 }, { a: 3 }]);
        console.log("Inserted 3 documents into the collection");

        // R: 读取文档
        const findResult = await collection.find({}).toArray();
        console.log('Found documents:', findResult);

        // U: 更新文档
        const updateResult = await collection.updateOne({ a: 2 }, { $set: { b: 1 } });
        console.log('Updated document:', updateResult);

        // D: 删除文档
        const deleteResult = await collection.deleteMany({ a: 3 });
        console.log('Deleted documents:', deleteResult);
        
		 // 删除该文档所有数据
        const deleteResultAll = await collection.deleteMany({});
        console.log(`Deleted ${deleteResultAll.deletedCount} documents`);
    } finally {
        await client.close();
    }
}

main().catch(console.error);

解释
连接到数据库:首先,创建 MongoClient 并连接到本地运行的 MongoDB 实例。

C (创建):使用 insertMany 方法插入多个文档到 documents 集合中。这是创建操作的示例。

R (读取):使用 find 方法查找集合中的所有文档并将它们转换为数组。这是读取操作的示例。

U (更新):使用 updateOne 方法更新第一个匹配 { a: 2 } 查询的文档,通过 $set 操作符添加新的字段。这是更新操作的示例。

D (删除):使用 deleteMany 方法删除所有匹配 { a: 3 } 查询的文档。这是删除操作的示例。

关闭数据库连接:操作完成后,确保关闭客户端连接。

总结

在本篇博客中,我们介绍了如何在 Node.js 应用程序中连接并操作 MongoDB 数据库。我们首先讨论了 MongoDB 的基本概念,然后详细介绍了如何在 Windows 环境下安装和配置 MongoDB。接下来,我们探讨了如何在 Node.js 中使用 MongoDB 驱动来连接数据库,包括如何安装必要的 npm 包。

我们通过实际代码示例演示了如何连接到 MongoDB 数据库、如何在数据库中创建和删除数据、以及如何查询数据库中的数据。这些示例包括了从建立数据库连接到执行 CRUD(创建、读取、更新、删除)操作的完整流程。

  • 34
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值