MONGDB安装与使用
网址:https://www.mongodb.com/try/download/community
官网上可以下载多个系统的mongdb安装包,windows,centos,ubuntu等等,如图
tar xvf mongodb-linux-x86_64-rhel80-4.4.4.tgz
mv mongodb-linux-x86_64-rhel80-4.4.4.tgz mongodb
mv mongodb /usr/local/
mkdir data
cd data
mkdir db
mkdir log
需要在mongodb.conf下配置
dbpath=/usr/local/mongodb/data/db
logpath=/usr/local/mongodb/data/log/mongodb.log
logappend=true
port=27017
auth=true
fork=true
bind_ip=0.0.0.0
export MONGODB_HOME=/usr/local/mongodb
export PATH=$PATH:$MONGODB_HOME/bin
mongod -f /usr/local/mongodb/mongodb.conf
1、可以直接关闭系统的防火墙
2、防火墙打开端口27017端口,以便于客户端进行连接mongdb
ps aux |grep mongodb
netstat -antp |grep 27017
1、通过kill 命令杀掉 PID即可
2、mongod -f /usr/local/mongodb/mongodb.conf --shutdown
角色 | |
---|---|
用户 | read、readWrite |
管理员 | dbAdmin、dbOwner、userAdmin |
集群管理员 | clusterAdmin、clusterManager、clusterMonitor、hostManager |
备份恢复权限 | backup、restore |
所有数据库权限 | readAnyDatabasereadWriteAnyDatabaseuserAdminAnyDatabasedbAdminAnyDatabase |
超级用户 | root |
内部角色 | __system |
use xxx
db.createUser({user:'admin2',pwd:'123456',roles:[{role:'readWriteAnyDatabase',db:'admin'}]})
执行后,如下效果
Successfully added user: {
"user" : "admin2",
"roles" : [
{
"role" : "readWriteAnyDatabase",
"db" : "admin"
}
]
}
接下来具体的mongdb数据库操作,可以看菜鸟教程学习一波,很快就会用了
https://www.runoob.com/mongodb/mongodb-create-collection.html
添加一个mongdb的服务
vim /etc/rc.d/init.d/mongod
编写这个服务的具体实现
start() {
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/mongodb.conf
}
stop() {
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/mongodb.conf --shutdown
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo $"details: $0 {start|stop|restart}"
exit 1
esac
chmod +x /etc/rc.d/init.d/mongod
service mongod start
service mongod stop
service mongod restart
介绍一个可视化工具,非常好用,比nosql这个工具好用多了
Robo 3T 1.3.1 下载链接如下
https://robomongo.org/download
软件操作比较简单,大家下载下来后,熟悉一下界面,就会使用了。
mongdb的驱动大家使用比较多的有2种:
我们选用官方的驱动库来介绍mongdb简单的增,删,改,查
type Test struct {
Name string `bson:"name"`
Age int `bson:"age"`
CreateTime int64 `bson:"createTime"`
UpdateTime int64 `bson:"updateTime"`
}
func initMongdb() error {
// 1 建立mongodb连接
// 填写自己的mongdb地址,端口默认是 27017
clientOptions := options.Client().ApplyURI("mongodb://admin:123456@xxxx:27017/admin?authMechanism=SCRAM-SHA-1")
mclient, err := mongo.Connect(context.TODO(), clientOptions)
if err != nil {
mlog.Error(err)
return err
}
// 2, 选择数据库my_db
database := mclient.Database("admin")
// 3, 选择表my_collection
collection := mgMongoDatabase.Collection("deviceToken")
mlog.Info("connect mongdb successfully")
// 插入数据
record := &Test{
Name: "小魔童",
CreateTime: time.Now().Unix(),
UpdateTime: time.Now().Unix(),
}
result, err := collection.InsertOne(context.TODO(), record)
if err != nil {
mlog.Error(err)
return err
}
mlog.Info(result)
// 更新数据
// if err := UpdateData(bson.M{"name": "xxxx"}, bson.D{{"$set", bson.M{"age": 15}}}); err != nil {
// mlog.Error(err)
// return
// }
//查询单个记录
//data := &DeviceToken{}
//err = collection.FindOne(context.TODO(),bson.M{}).Decode(data)
//mlog.Info(data)
//查询所有记录
data := []DeviceToken{}
cursor, err := collection.Find(context.TODO(), bson.M{})
cursor.All(context.TODO(), &data)
mlog.Info(data)
// 删除一条记录
//res ,err := mgMongoCollection.DeleteOne(context.TODO(),bson.M{"name":"xxxx"})
//if err != nil{
// mlog.Warn(err)
//}
return nil
}
学习mongdb 可以看看这个网站,当前这个完整还不支持 golang操作mongdb
以上为本期全部内容,如有疑问可以在评论区或后台提出你的疑问,我们一起交流,一起成长。
好家伙要是文章对你还有点作用的话,请帮忙点个关注,分享到你的朋友圈,分享技术,分享生活,分享知识,分享快乐
技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。
作者:小魔童哪吒