前言
MongoDB 是一个 NoSQL 数据库系统,它是由 C++ 语言编写的,为大规模数据存储提供高性能、高可用性和自动扩展等特性。它非常适合文档存储和数据处理,是 Web 开发中常用的技术之一。在本篇文章中,我们将介绍如何在 Node.js 应用程序中使用 MongoDB 完成数据存储和处理的操作,希望对 Web 开发者有所帮助。
安装 MongoDB
在开始使用 MongoDB 前,请确保已将其安装在计算机上。下面提供一些常见操作系统下的安装方法:
- Windows
下载安装程序并按照安装向导的指导完成安装即可。下载链接:https://www.mongodb.com/download-center/community?tck=docs_server
- macOS
可以使用 Homebrew 安装它,命令为:brew install mongodb
- Linux
可以使用 apt 或者 yum 安装,具体可以参考官方文档:https://docs.mongodb.com/manual/administration/install-community/
当然,安装也可以更加详细和自定义,本文不再赘述。
连接 MongoDB 数据库
为了在 Node.js 中使用 MongoDB,我们需要使用官方的 Node.js 驱动程序:mongodb
。
接下来我们将使用 mongodb
驱动程序连接到 MongoDB 数据库。首先,我们需要通过以下命令安装 MongoDB 驱动程序,执行以下命令:
npm install mongodb
在完成安装后,我们可以按照以下步骤连接到 MongoDB 数据库:
- 打开命令行或者终端,输入以下命令启动 MongoDB:
mongod
- 启动 MongoDB 后,我们可以在我们的 Node.js 应用程序中创建一个连接,使用以下代码:
const MongoClient = require('mongodb').MongoClient; const uri = "mongodb://localhost:27017/myproject"; const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true }); client.connect(err => { const collection = client.db("myproject").collection("documents"); // perform actions on the collection object client.close(); });
这段代码使用了 MongoClient.connect
方法连接到名为 myproject
的数据库。如果数据库不存在,MongoDB 将创建一个新的数据库。在这个例子中,我们只是创建了一个新的集合(类似于 SQL 中的表),名为 documents
。我们将会在后面的代码示例中使用该集合。
插入文档
我们已经成功连接到 MongoDB 数据库,那么现在让我们尝试向数据库中添加一些文档。在 MongoDB 中,文档是由键值对组成的。键必须是一个字符串,而值可以是任意类型。
这是向数据库插入文档的示例代码:
-- -------------------- ---- ------- ----- --------------- - ------------ --------- - -- --- --- --------- ---------- ----- ---------- - --------------------------- -- ------ ---- --------- ----------------------- - - - - -- - - - - -- - - - - - -- ------------- ------- - --------------------- - --------- ---- --- ------------- ----------------- --- -展开代码
我们可以将该函数添加到我们的连接代码中,使其能够插入文档。该函数需要传入一个数据库对象和一个回调函数,以便在插入完成后执行。
-- -------------------- ---- ------- ----- ----------- - ------------------------------- ----- --- - -------------------------------------- ----- ------ - --- ---------------- - ---------------- ----- ------------------- ---- --- ------------------ -- - ----- ---------- - ----------------------------------------------- -- ------ ---- --------- --------------------------------------- ---------- - --------------- --- --- ----- --------------- - ------------ --------- - -- --- --- --------- ---------- ----- ---------- - --------------------------- -- ------ ---- --------- ----------------------- - - - - -- - - - - -- - - - - - -- ------------- ------- - --------------------- - --------- ---- --- ------------- ----------------- --- -展开代码
运行该脚本后,我们将看到 "Inserted 3 documents into the collection"。我们可以通过 mongodb
命令查看数据库是否存在了新的文档:
-- -------------------- ---- ------- - ---- --- ----- ------- ----- ------- --------- ------- - --- --------- -------- -- -- --------- - ------------------- - ----- - ------------------------------------- --- - - - - ----- - ------------------------------------- --- - - - - ----- - ------------------------------------- --- - - -展开代码
查找文档
现在我们已经向数据库中添加了文档,让我们尝试使用 find
方法查找新插入的文档。find
方法是 MongoDB 中的一个非常常用的方法,它可以用于获取集合中的所有文档或按特定条件查找文档。该方法返回一个游标对象,我们可以通过它逐个获取集合中的所有文档。
下面是示例代码:
-- -------------------- ---- ------- ----- ------------- - ------------ --------- - -- --- --- --------- ---------- ----- ---------- - --------------------------- -- ---- ---- --------- ----------------------------------------- ----- - ------------------ --- --------- ------------ ----------------- --------------- --- -展开代码
我们可以将该函数添加到我们的连接代码中,并执行该函数来查找之前添加的文档。
-- -------------------- ---- ------- ----- ----------- - ------------------------------- ----- --- - -------------------------------------- ----- ------ - --- ---------------- - ---------------- ----- ------------------- ---- --- ------------------ -- - ----- ---------- - ----------------------------------------------- -- ------ ---- --------- --------------------------------------- ---------- - -- ---- ---- --------- ------------------------------------- ---------- - --------------- --- --- --- ----- --------------- - ------------ --------- - -- --- --- --------- ---------- ----- ---------- - --------------------------- -- ------ ---- --------- ----------------------- - - - - -- - - - - -- - - - - - -- ------------- ------- - --------------------- - --------- ---- --- ------------- ----------------- --- - ----- ------------- - ------------ --------- - -- --- --- --------- ---------- ----- ---------- - --------------------------- -- ---- ---- --------- ----------------------------------------- ----- - ------------------ --- --------- ------------ ----------------- --------------- --- -展开代码
运行该脚本后,我们应该看到以下输出:
Inserted 3 documents into the collection Found the following documents [ { _id: 5f2f220ed7641066d60176fc, a: 1 }, { _id: 5f2f220ed7641066d60176fd, a: 2 }, { _id: 5f2f220ed7641066d60176fe, a: 3 } ]
更新文档
MongoDB 中的 update
方法用于更新文档。该方法需要传入要更新的文档,以及要更新的字段和值。下面是示例代码:
-- -------------------- ---- ------- ----- -------------- - ------------ --------- - -- --- --- --------- ---------- ----- ---------- - --------------------------- -- ------ -------- ----- - -- -- --- - ----- -- - ---------------------- - - - - - - ----- - - - - - -- ------------- ------- - -------------------- --- -------- ---- --- ----- - ----- -- ---- ----------------- --- -展开代码
在这个示例中,我们使用 updateOne
方法更新了一个文档。我们使用了一个查询条件 { a : 2 }
来找到需要更新的文档,并将其 { b : 1 }
重命名。当然,我们还可以使用其他方法,如 updateMany
(更新多个文档) 或 replaceOne
(替换一个文档) 来更新数据库中的文档。
我们可以将该函数添加到我们的连接代码中,并执行该函数来更新已经添加过的文档。
-- -------------------- ---- ------- ----- ----------- - ------------------------------- ----- --- - -------------------------------------- ----- ------ - --- ---------------- - ---------------- ----- ------------------- ---- --- ------------------ -- - ----- ---------- - ----------------------------------------------- -- ------ ---- --------- --------------------------------------- ---------- - -- ------ - -------- -------------------------------------- ---------- - -- ---- ---- --------- ------------------------------------- ---------- - --------------- --- --- --- --- ----- --------------- - ------------ --------- - -- --- --- --------- ---------- ----- ---------- - --------------------------- -- ------ ---- --------- ----------------------- - - - - -- - - - - -- - - - - - -- ------------- ------- - --------------------- - --------- ---- --- ------------- ----------------- --- - ----- -------------- - ------------ --------- - -- --- --- --------- ---------- ----- ---------- - --------------------------- -- ------ -------- ----- - -- -- --- - ----- -- - ---------------------- - - - - - - ----- - - - - - -- ------------- ------- - -------------------- --- -------- ---- --- ----- - ----- -- ---- ----------------- --- - ----- ------------- - ------------ --------- - -- --- --- --------- ---------- ----- ---------- - --------------------------- -- ---- ---- --------- ----------------------------------------- ----- - ------------------ --- --------- ------------ ----------------- --------------- --- -展开代码
当我们运行脚本时,我们应该看到以下输出:
Inserted 3 documents into the collection Updated the document with the field a equal to 2 Found the following documents [ { _id: 5f2f220ed7641066d60176fc, a: 1 }, { _id: 5f2f220ed7641066d60176fd, a: 2, b: 1 }, { _id: 5f2f220ed7641066d60176fe, a: 3 } ]
可以看到,在更新后,文档 { a : 2 }
中的字段 b
已被重命名为了 1
。
删除文档
MongoDB 中的 delete
方法用于删除文档。该方法需要传入要删除的文档。下面是示例代码:
-- -------------------- ---- ------- ----- -------------- - ------------ --------- - -- --- --- --------- ---------- ----- ---------- - --------------------------- -- ------ -------- ----- - -- - ---------------------- - - - -- ------------- ------- - -------------------- --- -------- ---- --- ----- - ----- -- ---- ----------------- --- -展开代码
在这个示例中,我们使用 deleteOne
方法删除了一个文档。我们使用了一个查询条件 { a : 3 }
来找到需要删除的文档。当然,我们还可以使用 deleteMany
方法(删除多个文档)来从数据库中删除文档。
我们可以将该函数添加到我们的连接代码中,并执行该函数来删除之前添加过的文档。
-- -------------------- ---- ------- ----- ----------- - ------------------------------- ----- --- - -------------------------------------- ----- ------ - --- ---------------- - ---------------- ----- ------------------- ---- --- ------------------ -- - ----- ---------- - ----------------------------------------------- -- ------ ---- --------- --------------------------------------- ---------- - -- ------ - -------- -------------------------------------- ---------- - -- ------ - -------- -------------------------------------- ---------- - -- ---- ---- --------- ------------------------------------- ---------- - --------------- --- --- --- --- --- ----- --------------- - ------------ --------- - -- --- --- --------- ---------- ----- ---------- - --------------------------- -- ------ ---- --------- ----------------------- - - - - -- - - - - -- - - - - - -- ------------- ------- - --------------------- - --------- ---- --- ------------- ----------------- --- - ----- -------------- - ------------ --------- - -- --- --- --------- ---------- ----- ---------- - --------------------------- -- ------ -------- ----- - -- -- --- - ----- -- - ---------------------- - - - - - - ----- - - - - - -- ------------- ------- - -------------------- --- -------- ---- --- ----- - ----- -- ---- ----------------- --- - ----- -------------- - ------------ --------- - -- --- --- --------- ---------- ----- ---------- - --------------------------- -- ------ -------- ----- - -- - ---------------------- - - - -- ------------- ------- - -------------------- --- -------- ---- --- ----- - ----- -- ---- ----------------- --- - ----- ------------- - ------------ --------- - -- --- --- --------- ---------- ----- ---------- - --------------------------- -- ---- ---- --------- ----------------------------------------- ----- - ------------------ --- --------- ------------ ----------------- --------------- --- -展开代码
当我们运行脚本时,我们应该看到以下输出:
Inserted 3 documents into the collection Updated the document with the field a equal to 2 Removed the document with the field a equal to 3 Found the following documents [ { _id: 5f2f220ed7641066d60176fc, a: 1 }, { _id: 5f2f220ed7641066d60176fd, a: 2, b: 1 } ]
现在,我们已经知道了如何在 Node.js 应用程序中使用 MongoDB 完成基本的 CRUD 操作。下面是一个总结:
- 连接 MongoDB 数据库:
const MongoClient = require('mongodb').MongoClient; const uri = "mongodb://localhost:27017/myproject"; const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true }); client.connect(err => { const collection = client.db("myproject").collection("documents"); // perform actions on the collection object client.close(); });
- 插入文档:
-- -------------------- ---- ------- ----- --------------- - ------------ --------- - -- --- --- --------- ---------- ----- ---------- - --------------------------- -- ------ ---- --------- ----------------------- - - - - -- - - - - -- - - - - - -- ------------- ------- - --------------------- - --------- ---- --- ------------- ----------------- --- -展开代码
- 查找文档:
-- -------------------- ---- ------- ----- ------------- - ------------ --------- - -- --- --- --------- ---------- ----- ---------- - --------------------------- -- ---- ---- --------- ----------------------------------------- ----- - ------------------ --- --------- ------------ ----------------- --------------- --- -展开代码
- 更新文档:
-- -------------------- ---- ------- ----- -------------- - ------------ --------- - -- --- --- --------- ---------- ----- ---------- - --------------------------- -- ------ -------- ----- - -- -- --- - ----- -- - ---------------------- - - - - - - ----- - - - - - -- ------------- ------- - -------------------- --- -------- ---- --- ----- - ----- -- ---- ----------------- --- -展开代码
- 删除文档:
-- -------------------- ---- ------- ----- -------------- - ------------ --------- - -- --- --- --------- ---------- ----- ---------- - --------------------------- -- ------ -------- ----- - -- - ---------------------- - - - -- ------------- ------- - -------------------- --- -------- ---- --- ----- - ----- -- ---- ----------------- --- -展开代码
结论
以上就是在 Node.js 应用程序中使用 MongoDB 完成数据存储和处理的基本操作。当然,如何在 Node.js 应用程序中使用 MongoDB 还有很多细节和高级用法需要学习。但是,我们相信在学习了本文之后,大家可以更加
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64af9a2a48841e9894bad062