mongodb的安装
mongo主页
下载完成之后将目录放置下方
/usr/local/
安装之后就配置环境变量:
vim ~/.bash_profile
下方是我自己的环境变量配置
# JDK_HOMEJAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_321.jdk/Contents/Home
PATH=$JAVA_HOME/bin:$PATH:.
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.
export JAVA_HOME
export PATH
export CLASSPATH# Mysql_homeexport PATH=$PATH:/usr/local/mysql/bin
alias mysql=/usr/local/mysql/bin/mysql
alias mysqladmin=/usr/local/mysql/bin/mysqladmin# Maven_homeexport MAVEN_HOME=/Library/apache-maven-3.8.4
export PATH=$PATH:$MAVEN_HOME/bin# python3_homeexport PATH=$PATH:/usr/local/bin/python3.9/bin
export WORKON_HOME=$HOME/.virtualenvs ##这个目录为创建虚拟环境是所在的目录,可以自己指定目录
source /usr/local/bin/virtualenvwrapper.sh
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3# Android_homeexport ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/tools/bin
export PATH=$PATH:$ANDROID_HOME/platform-tools# MongoDB_home
export PATH=${PATH}:/usr/local/mongoDB/binexport HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles/ #ckbreweval $(/usr/local/Homebrew/bin/brew shellenv) #ckbrewexport PATH="/usr/local/opt/ruby/bin:$PATH"
配置完之后在当前目录下面执行下面的shell,配置才能生效
source .bash_profile
然后执行
mongod --version## 出现下面就算安装成功了
db version v5.0.6
Build Info: {"version": "5.0.6","gitVersion": "212a8dbb47f07427dae194a9c75baec1d81d9259","modules": [],"allocator": "system","environment": {"distarch": "x86_64","target_arch": "x86_64"}
}
安装之后有的小伙伴开启不了服务出现下方异常
MongoDB shell version v5.0.6 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27017 :: caused by :: Connection refused : connect@src/mongo/shell/mongo.js:372:17 @(connect):2:6 exception: connect failed exiting with code 1
是因为没有配置默认的数据库目录。
mkdir ~/data
cd ~/data
pwd
/Users/lifechat/data
#将mongo路径切到自己的路径下方就可以
sudo mongod --dbpath=/Users/lifechat/data
启动执行
sudo mongod --dbpath /usr/local/var/mongodb --logpath /usr/local/var/log/mongodb/mongo.log
然后点击我这个链接就能打开本地 出现下图即成功
这里推荐一个clien tool 用来管理数据,界面如下:
相关例子也在下方:自行详阅。
增删改查
/*
测试使用mongoose操作mongodb数据库
1. 连接数据库1.1. 引入mongoose1.2. 连接指定数据库(URL只有数据库是变化的)1.3. 获取连接对象1.4. 绑定连接完成的监听(用来提示连接成功)
2. 得到对应特定集合的Model2.1. 字义Schema(描述文档结构)2.2. 定义Model(与集合对应, 可以操作集合)
3. 通过Model或其实例对集合数据进行CRUD操作3.1. 通过Model实例的save()添加数据3.2. 通过Model的find()/findOne()查询多个或一个数据3.3. 通过Model的findByIdAndUpdate()更新某个数据3.4. 通过Model的remove()删除匹配的数据*/const md5 = require('blueimp-md5');const mongoose = require('mongoose');mongoose.connect('mongodb://localhost:27017/gzhipin')const conn = mongoose.connection;conn.on('connected',function(){console.log('connected successful')
})// 定义Schemeconst userSchema = mongoose.Schema({username: {type: String, required: true}, // 用户名password: {type: String, required: true}, // 密码type: {type: String, required: true}, // 用户类型: dashen/laobanheader: {type: String}
})const UserModel = mongoose.model('user',userSchema);//save
function save(){const userModel = new UserModel({username: 'Lifechat', password: md5('123'), type: 'laoban'})userModel.save(function(error,user){console.log('save()', error, user)})
}function find(){UserModel.find({username:'Lifechat'}, function (error, users) {console.log('find()', error, users)})// 查询一个: 得到是匹配的文档对象, 如果没有匹配的就是nullUserModel.findOne({_id:'633a783a023e7d37ed039b06'}, function (error, user) {console.log('findOne()', error, user)})
}function update(){UserModel.findByIdAndUpdate({_id:'633a783a023e7d37ed039b06'},{username:'Jack'}, function (error, oldUser) {console.log('findByIdAndUpdate()', error, oldUser)})
}function remove(){UserModel.remove({_id:'633a783a023e7d37ed039b06'}, function (error, doc) {console.log('remove()', error, doc) // {n: 1/0, ok: 1}})
}