node.js操作数据库之MongoDB+mongoose篇

前言

node.js 的出现,使得用前端语法(javascript)开发后台服务成为可能,越来越多的前端因此因此接触后端,甚至转向全栈发展。后端开发少不了数据库的操作。MongoDB 是一个基于分布式文件存储的开源数据库系统。本文为大家详细介绍了如何用 node.js + mongoose 玩转 MongoDB 。希望能帮到有需要的人。

由于我用Mac开发,以下所有操作都是在Mac下进行。

一、 环境搭建

安装Node.js

有 node 环境的可以跳过。

nodejs官网提供了 macOS 安装包,直接下载安装即可。现在 nodejs 稳定版已经到了 12.11.1

安装MongoDB

MongoDB 是为现代应用程序开发人员和云时代构建的基于文档的通用分布式数据库。

上个月(9月) macOS 包管理器 Homebrew 宣布移除 MongoDB 。原因是去年10月 MongoDB 宣布将其开源许可证从 GNU AGPLv3 切换到 SSPL(Server Side Public License),以此回应 AWS 等云厂商将 MongoDB 以服务的形式提供给用户而没有回馈社区的行为,MongoDB 希望从软件即服务上获取收入。Homebrew 认为 MongoDB 已经不再属于开源范畴…

言归正传,由于上述原因,我们不能直接使用 brew install mongodb 来安装 MongoDB 了。好在 MongoDB 自己维护了一个定制化的 Homebrew tap。并在 Install MongoDB Community Edition
更新了安装步骤。

Mac下 MongoDB 的最新安装步骤如下:

1. 首先安装 Homebrew

Homebrew 是 macOS 的包管理器。因为 OSX 默认不包含 Homebrew brew 包,所以要先安装,已经安装过的可以跳过。

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安装过程会有点长,终端输出信息超过一屏,这里我只截取了头尾两部分。
mg-install-homebrew.jpg

mg-install-homebrew-2.jpg

2. 然后获取下 MongoDB Homebrew Tap
brew tap mongodb/brew

mg-tap-mongodb-brew.jpg

3. 最后安装 MongoDB CE(社区版)
brew install [email protected]

mg-brew-install-mongodb.jpg

现在你的 Mac 上就已经安装好 MongoDB 环境了。

安装mongoose

node.js 是可以直接操作 MongoDB 的,但是通过 MongoDB 命令语法直接编写 MongoDB 验证、数据类型转换和业务逻辑模版比较繁琐。所以我们使用了 mongoose。

mongoose 是 MongoDB 的一个对象模型工具,它对 MongoDB 的常用方法进行了封装,让 node.js 操作 MongoDB 更加优雅简洁。

刚才的 node.js 和 MongoDB 都是安装在全局环境,mongoose 则是安装在你的项目下:

cd your-project
npm i -S mongoose

mg-install-mongoose.jpg

现在,你的开发环境就已经全部安装好了。

二、启动MongoDB服务

要操作 MongoDB ,首先要启动它。
有两种方式启动 MongoDB 服务:

1. 在前台运行
mongod --config /usr/local/etc/mongod.conf

前台运行的好处就是,可以查看一些反馈和日志,便于调试。另外如果要关闭服务,只需要在终端按 control + c 键即可。
mg-run-mongodb-in-foreground.jpg

2. 也可以作为 macOS 服务,在后台运行
brew services start [email protected]

好处是开机就自动启动,随时可以使用。
mg-run-mongodb-as-a-server.jpg
这种启动方式,如果要关闭服务,可以通过 stop 命令:

brew services stop [email protected]

mg-stop-mongodb-service.jpg

现在,你的 MongoDB 数据库已经开启了。

三、操作MongoDB

操作之前先解释一下MongoDB和mongoose里的一些核心概念。

MongoDB

  • MongoDB 中的数据记录是一种 BSON 格式的文件(BSON是一种用二进制描述的JSON文件格式)。
  • MongoDB 将文件存储在集合中,将集合存储在数据库中。
  • MongoDB 的数据库、集合都不用手动创建。
  • 集合collection: 相当于关系型数据库中的表table
  • 文件document: MongoDB 的数据记录单位,相当于关系型数据库中的记录row

mongoose

  • schema: 在 mongoose 中,所有的东西都来源于一个 schema,每个schema 映射了一个 MongoDB 的集合
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值