系列文章目录
docker:环境安装
docker:Web迁移
docker:Haoop集群
docker:安装mongodb
文章目录
前言
最近要重构一个曾经的小项目,大部分逻辑都没变,但准备使用mongo数据库进行数据存储,原因是获得的源数据存储就是JSON格式,直接用mongo存储可以少一步清洗过程,也可以顺便学习一下新技术。
一、docker安装mongo
1.拉取镜像
docker pull mongo
2.启动容器
docker run --name=mongo -p 27017:27017 -d -v /home/chaoge/Documents/mongodb:/data/db mongo --auth
将挂载目录换成自己的。
3.安装mongosh
因为我们使用的是docker安装,所以需要单独安装mongosh。
官方文档
官方提供了不同操作系统的安装包,博主用的是linux系统,所以用的是deb包。
因为mongosh会默认连接本机的mongo,所以不用加参数直接打开就行。
4.创建用户
创建第一个用户要紧docker中执行命令
#进入Docker
docker exec -it mongo mongosh admin
#创建用户
db.createUser({user:'admin',pwd:'123456',roles:[{role:'root',db:'admin'}],})
# 验证用户
db.auth('admin','123456')
mongsh登录。
在docker外用mongosh登录并进行认证。
mongosh
use admin
db.auth('admin','123456')
show databases;
当出现图中内容,说明用户创建完成。
二、基础操作
1.新建数据库
在mongo中,直接使用use就可以创建新数据,这里我们随便创建一个进行学习。
use school
但创建完成后不会自动保存,只要当mongo中插入一条数据后,数据库才会自动保存。
2.插入数据
mongo是非关系性数据库,采用文档的的方式进行存储,所以要接收一个json格式的对象。
db.users.insertOne({name:'zs',age:18})
这里我们插入一条 name是zs,age是18的json对象,现在数据库就已经自动保存了。
3.查询数据
我们先多插几个方便测试。
db.users.insertOne({name:'ls',age:23})
db.users.insertOne({name:'ww',age:30,sex:'F'})
查询全部数据。
db.users.find()
每个JSON对象都有自己的ID,由数据库自己生成。
条件查询
#查询年龄为18的数据
db.users.find({age:23})
查询函数非常多,我就不专门举例子了,后边用到啥在学啥。
4.更新数据
现在我们更新李四的年龄。
db.users.updateOne({name:'ls'},{$set:{age:30}})
db.users.find({name:'ls'})
5.删除数据
db.users.deleteOne({name:'ls'})
李四的信息已经消失了。
三、Pymongo
接下来我们使用python操作mongo因为我得这个项目使用了Python语言。
1.安装pymongo
pip install pymongo
2.编写代码
from pymongo import MongoClient
client = MongoClient(host='127.0.0.1', port=27017, username="admin", password="123456")
# 指定数据库和集合
db = client.school
collection = db.test
# 插入文档
info = {'name': 'ls', 'age': 32}
collection.insert_one(info)
# 查看文档
re = collection.find_one()
print(re)
# 修改文档
collection.update_one({'name': 'zs'}, {'$set': {"age": 35}})
# 删除文档
collection.delete_one({'name': 'zs'})
总结
以上就是有关Mongo的基础内容,后边用到啥现学。