打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
docker下mongo部署与操作

docker下mongo部署与操作

mongo是当下很流行的No SQL数据库,由于它的schema-free,则上手容易,自动分表分库的特性,受到很多新兴应用的青睐。

对于流行的关系数据库mysql,几个缺点。mongo不支持多表查询。如果需要经常关系几个表join,那使用mongo是不合适的。

当然关系数据库的事务之类的,也是不支持的。

除了如上2点吧,如果可以接受,那使用mongo还是很令人愉悦的。

docker pull mongo

#--auth启用密码验证

docker run -p 27017:27017 -v /mnt/db:/data/db -d --name my_mongodb mongo
--bind_ip_all --auth

#进入容器,并使用mongo client进入admin

docker exec -it mymongo mongo admin

#创建用户管理员

db.createUser({ user: 'name', pwd: 'pwd', roles:
[ { role: "userAdminAnyDatabase", db: "admin" } ] }); #退出,重新进入,使用刚才创建的用户名,密码登录

db.auth("name","pwd") #切换表use tablexxx

#tablexxx创建读写权限用户write/write

db.createUser({ user: 'write', pwd: 'write', roles: [ { role: "readWrite", db: "tablexxx" } ] }); #tablexxx创建读权限用户read/read

db.createUser({ user: 'read', pwd: 'read', roles: [ { role: "read", db: "tablexxx" } ] }); #搞定!

这是官方最新的mongo镜像,当然可以指定版本。

import pymongo
#连接mongo,默认数据库是db

def get_mongodb(db='db'):    mongo_db = pymongo.MongoClient('ip', 27017)[db]    mongo_db.authenticate('write', 'write')    
return mongo_db
#给指定表加索引
def ensure_index(tb,col):    db = get_mongodb()    db[tb].ensure_index(col)
#查看索引
def show_index(tb):    db = get_mongodb()    print(db[tb].index_information())
#添加文档

def add_doc(tb,doc):    db = get_mongodb()    db[tb].insert(doc)

关于作者:魏佳斌,互联网产品/技术总监,北京大学光华管理学院(MBA),特许金融分析师(CFA),资深产品经理/码农。偏爱python,深度关注互联网趋势,人工智能,AI金融量化。致力于使用最前沿的认知技术去理解这个复杂的世界。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Docker基础:docker 安装mongodb
在Docker中安装MongoDB
教你如何利用MySQL学习MongoDB之授权和权限
快速搭建属于自己的数据库
【Mongodb】用户和认证 权限总结
MongoDB权限控制(6)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服