Nodejs 如何连接 mongodb?

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 笔记

80.png

要使用 Node.js 连接 MongoDB,通常使用 Mongoose 这个对象文档模型(ODM)库。下面就来简单介绍一下使用 Mongoose 连接 MongoDB 的方法。

Mongoose 是一个 Node.js 包,提供了一个使用 mongo 数据库的接口。在应用程序中使用它是非常轻量级的 npm 包。 Mongoose 拥有所有方法集,可以连接和访问存储在 Mongo 数据库中的数据。

react-giant:一个react+next.js+mongodb的学习项目。


安装Mongoose库


这是 Node.js 项目开发必须的步骤之一,使用 npm 命令进行安装,在终端输入以下命令即可安装:

npm install mongoose --save


连接 MongoDB


通常在使用数据库的时候,都需要先建立连接,通过以下方式建立连接:

const mongoose = require("mongoose");
const connectDb = async () => {
    await mongoose.connect("mongodb://localhost:27017/admin");
};
connectDb();

在上面的代码中,mongoose.connect() 函数用于建立到MongoDB的连接。第一个参数指定了MongoDB的连接URL,格式为 mongodb://<host>:<port>/<database-name>?<options>,其中<host> 指定MongoDB所在的主机名或IP地址,<port>指定MongoDB的端口号,<database-name> 指定要连接的数据库的名称,<options>是一些配置项,以参数的方式传递,如 ?useNewUrlParser=true&useUnifiedTopology=true。对于需要用户名和密码连接的数据库,则<host>参数方式为 username:password@127.0.0.1:27017

需要注意的是,mongoose 不同版本连接方式上有点区别,上述代码是在版本 7.0.2 可以正常使用。


定义模型和模式


在使用 Mongoose 时,通常需要先定义一个模型和对应的模式。模型是指 MongoDB 中的一个集合,而模式则指定了集合中每个文档的结构和字段。以下是一个简单的模式定义示例:

const mongoose = require("mongoose");
const userSchema = new mongoose.Schema({
    username: {
        type: String,
        required: true,
    },
    email: {
        type: String,
        required: true,
        unique: true,
        maxlength: [255, "Email length must be at most 255"],
    },
    ip: {
        type: String,
        required: true,
    },
});
const User = mongoose.model("User", userSchema);

CRUD操作


在定义了模型和模式之后,就可以使用模型进行 CRUD(创建、读取、更新、删除)操作。以下是一些常用的示例代码:

const mongoose = require("mongoose");
// 创建记录
async function createUsers() {
    const result = await User.create({
        username: "Quintion",
        email: "quintiontang@gmail.com",
        ip: "127.0.0.1",
    });
    return result;
}
// 查询文档列表
async function getUsers() {
    const users = await User.find();
    return users;
}
// 查询单个
async function getUser() {
    const user = await User.find({
        username: "Quintion",
    });
    return user;
}
// 删除记录
async function deleteUser() {
    return await User.remove({
        username: "Quintion",
    });
}

上述代码只是一个简单的示例,如果需要一个完整的可运行的代码,可以查看下面的项目:

react-giant:一个react+next.js+mongodb的学习项目。


相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
23天前
|
SQL JavaScript 关系型数据库
node博客小项目:接口开发、连接mysql数据库
【10月更文挑战第14天】node博客小项目:接口开发、连接mysql数据库
|
28天前
|
NoSQL 网络安全 MongoDB
MongoDB - 连接
10月更文挑战第12天
13 1
|
20天前
|
NoSQL 前端开发 JavaScript
Node.js 连接 MongoDB
10月更文挑战第20天
31 0
|
1月前
|
NoSQL 前端开发 JavaScript
Node.js 连接 MongoDB
10月更文挑战第9天
44 0
|
2月前
|
JavaScript
NodeJs的安装
文章介绍了Node.js的安装步骤和如何创建第一个Node.js应用。包括从官网下载安装包、安装过程、验证安装是否成功,以及使用Node.js监听端口构建简单服务器的示例代码。
NodeJs的安装
|
1月前
|
JavaScript 开发工具 git
已安装nodejs但是安装hexo报错
已安装nodejs但是安装hexo报错
25 2
|
2月前
|
存储 JavaScript 前端开发
Node 版本控制工具 NVM 的安装和使用(Windows)
本文介绍了NVM(Node Version Manager)的Windows版本——NVM for Windows的安装和使用方法,包括如何安装Node.js的特定版本、列出已安装版本、切换使用不同版本的Node.js,以及其他常用命令,以实现在Windows系统上对Node.js版本的便捷管理。
Node 版本控制工具 NVM 的安装和使用(Windows)
|
1月前
|
Web App开发 JavaScript 前端开发
JavaWeb 22.Node.js_简介和安装
JavaWeb 22.Node.js_简介和安装
|
2月前
|
SQL JavaScript 数据库
sqlite在Windows环境下安装、使用、node.js连接
sqlite在Windows环境下安装、使用、node.js连接
|
2月前
|
JavaScript Linux 开发者
一个用于管理多个 Node.js 版本的安装和切换开源工具
【9月更文挑战第14天】nvm(Node Version Manager)是一个开源工具,用于便捷地管理多个 Node.js 版本。其特点包括:版本安装便捷,支持 LTS 和最新版本;版本切换简单,不影响开发流程;多平台支持,包括 Windows、macOS 和 Linux;社区活跃,持续更新。通过 nvm,开发者可以轻松安装、切换和管理不同项目的 Node.js 版本,提高开发效率。