MongoDb安装配置

下载

可以直接到mongoDB官网下载安装包。
我们公司对软件安装有限制,没有管理员权限。所以我下载的免安装的,解压即用的mongo


$ sudo curl -O https://fastdl.mongodb.org/osx/mongodb-macos-x86_64-4.4.2.tgz  #下载

$ sudo tar -zxvf mongodb-osx-ssl-x86_64-4.4.2.tgz   # 解压

安装&配置

  • 对于tgz文件,直接拷贝到全局目录 /usr/local/,然后配置环境变量即可。建议将文件夹命名为 mongodb
  • /usr/local为隐藏目录,正常在finder中是看不到的,需要在finder中按shift + command +G 输入/usr/local并点击前往。

命令行操作如下:

# 安装(copy)
$ sudo cp -r mongodb-osx-x86_64-4.4.2/  /usr/local/   
$ sudo mv mongodb-osx-x86_64-4.4.2/ mongodb
# 配置环境变量
$ vi ~/.bash_profile  # 增加: export PATH=$PATH:/usr/local/mongodb/bin
$ source .bash_profile

不幸的是,我们公司系统有管理员权限控制,是无法使用全局目录/usr/local/ 的。所以,我使用的自己的工作目录:

# 安装(copy)
$ sudo cp -r mongodb-osx-x86_64-4.4.2/  /Users/myself   
$ sudo mv mongodb-osx-x86_64-4.4.2/ mongodb
# 配置环境变量
$ vi ~/.bash_profile  # 增加: export PATH=$PATH:/Users/myself /mongodb/bin
$ source .bash_profile

验证安装是否ok:

$ mongod -version  # 正常打印出mongo版本信息,即安装生效。

启动mongodb

启动之前,我们需要创建db(数据存储)和logs(日志文件)的文件夹。可以直接创建在安装的mongodb目录,也可以放到单独的目录。

$ cd /Users/myself
$ mkdir mongoData  # 创建单独目录
$ cd mongoData
$ mkdir db
$ mkdir logs

启动mongodb

# 常用命令
$ mongod --dbpath data --logpath logs/m.log --logappend
# --dbpath 指定数据文件夹
# --logpath 指定日志存储文件
# --logappend 后台运行

明显的,启动mongodb是有一系列配置的。所以,通常我们会设置一个单独的配置文件,根据配置文件来启动mongodb

$ cd /User/myself/mongoData
$ vi m.conf # 增加配置文件

# 常用配置如下:

bind_ip_all = true # 任何机器可以连接
#bind_ip = 127.0.0.1,192.168.0.3 # 本机和192.168.0.3可以访问
port = 27017 # 实例运行在27017端口(默认)
dbpath = /Users/myself/mongoData/db # 数据文件夹存放地址(db要预先创建)
logpath = /Users/myself/mongoData/logs/m.log # 日志文件地址
logappend = false # 启动时 添加还是重写日志文件
fork = true # 是否后台运行
#auth = true # 开启校验用户

# 启动mongodb
$ mongod -f m.conf

如果没有什么报错信息,基本上mongodb已经启动

连接mongodb

在新的终端中输入”mongo” 连接数据库,如果出现数据库操作符>, 那么恭喜你,可以使用mongodb了。

$ mongo
MongoDB shell version v4.4.2
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("92e4a9f7-b622-4a1a-9de1-df4cc8e1b581") }
MongoDB server version: 4.4.2
# ...略
> 1+1
2
> 

Nodejs + mongodb

Node项目中,我们可以使用Mongoose库来连接和使用mongodb
Mongoose是在node.js异步环境下对mongodb进行便捷操作的对象模型工具。

const mongoose = require('mongoose'),

/**
 * 连接
 */
mongoose.connect('mongodb://127.0.0.1:27017/test', { useNewUrlParser: true });

/**
  * 连接成功
  */
mongoose.connection.on('connected', function () {    
    console.log('Mongoose connection open to ' + DB_URL);  
});    

/**
 * 连接异常
 */
mongoose.connection.on('error',function (err) {    
    console.log('Mongoose connection error: ' + err);  
});    

/**
 * 连接断开
 */
mongoose.connection.on('disconnected', function () {    
    console.log('Mongoose connection disconnected');  
}); 

具体数据库操作,可参考mongoose官方文档