Nodejs 如何连接 mongodb?

简介: 笔记

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的学习项目。


相关文章
|
存储 NoSQL JavaScript
Node.js导入MongoDB具体操作指南
通过本文,您已经学会了如何在Node.js中导入MongoDB并执行基本的CRUD操作。Node.js与MongoDB的结合使得构建高效、可扩展的后端服务变得更加容易。通过遵循本文的步骤,您可以快速设置并运行一个强大的数据存储和处理系统。希望这篇指南能为您的开发工作提供实用的帮助。
446 13
|
存储 NoSQL Linux
微服务2——MongoDB单机部署4——Linux系统中的安装启动和连接
本节主要介绍了在Linux系统中安装、启动和连接MongoDB的详细步骤。首先从官网下载MongoDB压缩包并解压至指定目录,接着创建数据和日志存储目录,并配置`mongod.conf`文件以设定日志路径、数据存储路径及绑定IP等参数。之后通过配置文件启动MongoDB服务,并使用`mongo`命令或Compass工具进行连接测试。此外,还提供了防火墙配置建议以及服务停止的两种方法:快速关闭(直接杀死进程)和标准关闭(通过客户端命令安全关闭)。最后补充了数据损坏时的修复操作,确保数据库的稳定运行。
914 0
|
NoSQL JavaScript Shell
微服务2——MongoDB单机部署2——Shell连接
本节介绍如何通过Shell连接MongoDB数据库,使用`mongo`命令登录,默认连接本地127.0.0.1的27017端口。可查看数据库列表(`show databases`),退出shell(`exit`),或通过`--help`获取更多参数。MongoDB Shell基于JavaScript解释器,支持运行JS程序。
364 0
|
SQL JavaScript 关系型数据库
node博客小项目:接口开发、连接mysql数据库
【10月更文挑战第14天】node博客小项目:接口开发、连接mysql数据库
|
JSON JavaScript 关系型数据库
node.js连接GBase 8a 数据库 并进行查询代码示例
node.js连接GBase 8a 数据库 并进行查询代码示例
|
NoSQL 前端开发 JavaScript
Node.js 连接 MongoDB
10月更文挑战第20天
219 0
|
NoSQL MongoDB 数据库
数据库数据恢复—MongoDB数据库数据恢复案例
MongoDB数据库数据恢复环境: 一台操作系统为Windows Server的虚拟机上部署MongoDB数据库。 MongoDB数据库故障: 工作人员在MongoDB服务仍然开启的情况下将MongoDB数据库文件拷贝到其他分区,数据复制完成后将MongoDB数据库原先所在的分区进行了格式化操作。 结果发现拷贝过去的数据无法使用。管理员又将数据拷贝回原始分区,MongoDB服务仍然无法使用,报错“Windows无法启动MongoDB服务(位于 本地计算机 上)错误1067:进程意外终止。”
|
缓存 NoSQL Linux
在CentOS 7系统中彻底移除MongoDB数据库的步骤
以上步骤完成后,MongoDB应该会从您的CentOS 7系统中被彻底移除。在执行上述操作前,请确保已经备份好所有重要数据以防丢失。这些步骤操作需要一些基本的Linux系统管理知识,若您对某一步骤不是非常清楚,请先进行必要的学习或咨询专业人士。在执行系统级操作时,推荐在实施前创建系统快照或备份,以便在出现问题时能够恢复到原先的状态。
1304 79
|
存储 NoSQL MongoDB
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
456 8
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
|
运维 NoSQL 容灾
告别运维噩梦:手把手教你将自建 MongoDB 平滑迁移至云数据库
程序员为何逃离自建MongoDB?扩容困难、运维复杂、高可用性差成痛点。阿里云MongoDB提供分钟级扩容、自动诊断与高可用保障,助力企业高效运维、降本增效,实现数据库“无感运维”。

推荐镜像

更多