mongodb的安装
下载完成之后将目录放置下方
/usr/local/
安装之后就配置环境变量:
vim ~/.bash_profile
下方是我自己的环境变量配置
# JDK_HOME
JAVA_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_home
export PATH=$PATH:/usr/local/mysql/bin
alias mysql=/usr/local/mysql/bin/mysql
alias mysqladmin=/usr/local/mysql/bin/mysqladmin
# Maven_home
export MAVEN_HOME=/Library/apache-maven-3.8.4
export PATH=$PATH:$MAVEN_HOME/bin
# python3_home
export 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_home
export 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/bin
export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles/ #ckbrew
eval $(/usr/local/Homebrew/bin/brew shellenv) #ckbrew
export 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. 引入mongoose
1.2. 连接指定数据库(URL只有数据库是变化的)
1.3. 获取连接对象
1.4. 绑定连接完成的监听(用来提示连接成功)
2. 得到对应特定集合的Model
2.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')
})
// 定义Scheme
const userSchema = mongoose.Schema({
username: {type: String, required: true}, // 用户名
password: {type: String, required: true}, // 密码
type: {type: String, required: true}, // 用户类型: dashen/laoban
header: {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)
})
// 查询一个: 得到是匹配的文档对象, 如果没有匹配的就是null
UserModel.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}
})
}