在 Deno 的生态系统中,MongoDB 是一个非常流行的NoSQL数据库。本文将教你如何在 Deno 中使用 MongoDB。
准备工作
在开始使用 MongoDB 之前,你需要启动本地 MongoDB 数据库,并安装必要的依赖库。
- 安装 MongoDB
对于 macOS 用户,可以使用 Homebrew 安装 MongoDB:
brew install mongodb-community
对于 Windows 和 Linux 用户,请访问 MongoDB 官网 根据操作系统的不同下载并安装 MongoDB。
- 安装依赖库
在 Deno 中,我们需要使用第三方依赖库来访问 MongoDB。两个流行的依赖库是 mongo
和 deno_mongo
。本文将使用 deno_mongo
。
首先,使用 Deno 安装 deno_mongo
:
deno install --unstable --allow-net --allow-plugin --allow-read --allow-write https://deno.land/x/deno_mongo/mod.ts
请注意,--unstable
标记是必需的,因为 deno_mongo
使用 Deno Experimental APIs,而这些 API 目前处于 unstable 状态。
然后在你的应用程序中导入 MongoClient
:
import { MongoClient } from "deno_mongo";
连接 MongoDB
首先,我们需要定义一个全局的 MongoClient
实例,以便在应用程序中重用它来访问 MongoDB 数据库。在这个例子中,我们将创建一个名为 db
的全局实例。
const client = new MongoClient(); await client.connect("mongodb://127.0.0.1:27017"); const db = client.database("test");
上面的代码将创建一个 MongoClient
实例,并使用 connect
方法通过 MongoDB 的连接字符串连接到本地数据库服务器。
然后,我们获取 test
数据库的实例并将其赋值给 db
变量,以便我们可以在之后的代码中重用它。
插入文档
一旦我们连接到 MongoDB 数据库,我们就可以插入一个文档。为此,我们可以创建一个名为 users
的集合,并插入一个用户文档。
const users = db.collection("users"); const result = await users.insertOne({ name: "John Doe", email: "johndoe@example.com", }); console.log(result.insertedId);
上面的代码将创建一个名为 users
的集合。然后,它插入一个具有 name
和 email
字段的文档,并返回插入的文档的 _id
属性。
查询文档
我们可以使用 findOne
和 find
方法查询集合中的文档。findOne
方法将返回与查询条件匹配的第一个文档,而 find
方法将返回与查询条件匹配的所有文档的游标。
const user = await users.findOne({ name: "John Doe" }); console.log(user); const allUsers = await users.find({}); for await (const user of allUsers) { console.log(user); }
上面的代码将使用 findOne
方法查询名为 John Doe
的用户,并使用 find
方法查询所有用户,并在控制台中打印查询结果。
更新文档
我们可以使用 updateOne
和 updateMany
方法更新集合中的文档。updateOne
方法将只更新匹配查询条件的第一个文档,而 updateMany
方法将更新所有匹配查询条件的文档。
-- -------------------- ---- ------- ----- ------ - ----- ---------------- - ----- ----- ---- -- - ----- - ------ ----------------------- - - -- ---------------------------------- ----- ------- - ----- ----------------- --- - ----- - ----- ------ - - -- -----------------------------------
上面的代码将使用 updateOne
方法将名为 John Doe
的用户的电子邮件地址更新为 new-email@example.com
,并返回更新的文档数。
然后,它将使用 updateMany
方法将集合中所有文档的 role
字段设置为 user
。
删除文档
我们可以使用 deleteOne
和 deleteMany
方法从集合中删除文档。deleteOne
方法将只删除匹配查询条件的第一个文档,而 deleteMany
方法将删除所有匹配查询条件的文档。
const result = await users.deleteOne({ name: "John Doe" }); console.log(result.deletedCount); const result2 = await users.deleteMany({}); console.log(result2.deletedCount);
上面的代码将使用 deleteOne
方法删除名为 John Doe
的用户,并返回删除的文档数。
然后,它将使用 deleteMany
方法删除集合中的所有文档,并返回删除的文档数。
结论
现在你已经学会了如何在 Deno 中使用 MongoDB!使用这些技术,你可以构建灵活的、动态的 Web 应用程序和 API。如果你想进一步学习,可以访问 deno_mongo
的 GitHub 仓库,以了解更多高级功能和使用示例。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6705ec52d91dce0dc855e226