MongoDB 简介
MongoDB 是一种 NoSQL 数据库,它具有高度可扩展性、高性能、可靠性和灵活性。MongoDB 不同于传统的关系型数据库,它使用文档模型来存储数据,而不是使用表。文档模型可以使数据的存储和读取更加高效灵活,同时也适用于非结构化和半结构化的数据格式。
Express.js 简介
Express.js 是 Node.js 的一个 Web 应用开发框架,它提供了一套简单而灵活的API,能够帮助我们构建 Web 应用程序。Express.js 是基于中间件的,它提供了实现请求和响应的函数、路由和视图管理。
如何在 Express.js 中使用 MongoDB
在 Express.js 应用程序中使用 MongoDB,我们需要使用 Node.js 中间件 mongoose
,它是一个 MongoDB 的对象模型工具库,能够帮助我们连接 MongoDB 数据库,并方便地操作数据。
下面是如何使用 mongoose
连接 MongoDB 数据库的示例代码:
const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/mydb', {useNewUrlParser: true, useUnifiedTopology: true }) .then(() => { console.log('MongoDB 连接成功!') }) .catch(err => { console.log(`MongoDB 连接失败!${err}`) });
在这个示例中,我们使用 mongoose
连接了名为 mydb
的 MongoDB 数据库。
接下来,我们可以通过定义 Schema
来定义 MongoDB 数据库中的数据模型。Schema
是一个 MongoDB 文档的表现形式,它定义了文档的结构、字段类型和默认值。
const userSchema = new mongoose.Schema({ name: String, age: Number, email: String, created: { type: Date, default: Date.now } });
在这个示例中,我们定义了一个名为 user
的 Schema
,它包含了名为 name
、age
、email
和 created
的字段。
接下来,我们可以通过定义 Model
来操作数据库中的数据。Model
是基于 Schema
创建的一个实例,它提供了在 MongoDB 数据库中增、删、改、查等操作的接口。
const userModel = mongoose.model('User', userSchema);
在这个示例中,我们使用 userSchema
定义了一个名为 User
的 Model
,它可以用于操作名为 users
的 MongoDB 集合中的数据。
下面是如何使用 Model
创建、读取、更新和删除数据的示例代码:
-- -------------------- ---- ------- -- ---- ----- ---- - --- ----------- ----- ----- ---- --- ------ ---------------------- --- ----------- ---------- -- - ------------------ -- ---------- -- - ----------------- --- -- ---- ------------------- ----- ---- -- ---------- -- - ------------------ -- ---------- -- - ----------------- --- -- ---- --------------------- ----- ---- -- - ---- -- -- -------- -- - ----------------------- -- ---------- -- - ----------------- --- -- ---- --------------------- ----- ---- -- -------- -- - ----------------------- -- ---------- -- - ----------------- ---
总结
使用 mongoose
可以很方便地在 Express.js 中使用 MongoDB 数据库。我们需要定义 Schema
来定义数据模型,然后可以通过 Model
对数据进行增、删、改、查等操作。MongoDB 具有高度可扩展性、高性能、可靠性和灵活性,它是一种适用于不同类型的数据格式的优秀 NoSQL 数据库。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64efa013f6b2d6eab399c66c