1、下载
地址:https://www.mongodb.com/try/download/community
下载tar包
2、安装
tar -zxvf mongodb-linux-x86_64-rhel80-5.0.5.tgz -C /opt/install/
修改名字
cd mongodb-5.0.5/
3、配置环境变量
vim /etc/profile
export MONGODB_HOME=/opt/install/mongodb-5.0.5
export PATH=$PATH:$MONGODB_HOME/bin
重启
source /etc/profile
查看版本
mongo --version
4、修改配置文件
分别创建三个文件夹 logs、etc、data
分别创建文件
/opt/install/mongodb-5.0.5/logs
touch mongo.log
/opt/install/mongodb-5.0.5/etc
touch mongo.conf
编辑配置文件
//自己安装的路径
dbpath=/opt/install/mongodb-5.0.5/data
//自己安装的路径
logpath=/opt/install/mongodb-5.0.5/logs/mongo.log
logappend=true
journal=true
quiet=true
port=27017 //端口号
5、启动mongodb
./mongod --config /opt/install/mongodb-5.0.5/etc/mongodb.conf
./mongod -f /opt/install/mongodb-5.0.5/etc/mongo.conf --fork
mongod -f /opt/install/mongodb-5.0.5/etc/mongo.conf --fork
6、访问
mongo
7、基本操作
一.数据库操作
1. 展示所有的数据库
show dbs
2. 展示当前指向的数据库
db
3. 切换指向的数据库
use 数据库名
4. 新建一个数据库
use 数据库即可
但是注意:如果该数据库没有集合,就不存在这个数据库
换句话说:数据库依赖于集合而存在
5. 删除指向的数据库
db.dropDatabase()
二.集合操作
1. 增加一个集合
db.createCollection('集合名')
2. 查看所有集合
show collections
3. 向集合中添加数据
db.集合名.insert(json串)
添加多条数据
db.集合名.insertMany([json1,json2,...])
可以添加多个不等长json串
4. 查看集合中所有的元素
db.集合名.find()
5. 修改
db.集合名.update(修改前,修改后) -- 更换整个json串
更改的是查找到的第一个
三.查询操作
1.查出所有json db.集合名.find(默认无条件) -- 查询第一个
2.查询第一个: db.集合名.findone([{查询条件}]) : 查询第一个
条件:
比较运算符:
等于: $eq equle
小于: $lt less than
大于: $gt granter than
小于等于: $lte
大于等于: $gte
find({筛选字段:{筛选规则:值}})
查询年龄大于18的数据:
db.sets1.find({age:{$gt:18}})
查询名字是linlin的数据
db.sets1.find({name:{$eq:'linlin'}})
相当于: select * from sets1 where name=linlin
逻辑运算符:
逻辑与:and
逻辑或:or
逻辑非:not
查询所有年龄在170-190之间的信息
db.sets1.find({age:{$gt:170,$lt:190}})
查询年龄不是18的信息
db.sets1.find({age:{$not:{$eq:18}}})
注明:双重否定表肯定
查询年龄小于200且性别为帅哥的信息
db.sets1.find({$and:[{age:{$lt:200},sex:{$eq:"帅哥"}}]})
8、pymongo
conn = pymongo.MongoClient("mongodb://localhost:27017")# 建立和mongo的连接
mydb = conn['库名'] # 选择使用哪个数据库
myset = mydb['集合名'] #相当于use,没有会自动创建
增
myset.insert_many([{"键名":"值","键名":"值"},{"键名":"值","键名":"值"}])
myset.insert([{"键名":"值","键名":"值"},{"键名":"值","键名":"值"}]) # 插入多条数据
删
删集合
mydb.drop_collection("集合名") # 删集合
删库
conn.drop_database("库名")
改
myset.update({"键名1":"值1"},{"键名1":"值2"}) #将键名对应值1改为值2
myset.update({"键名1":"值1"},{"$set":{"任意键名":"值"}}) # 根据筛选条件具体修改某个值
查
result = myset.find() # result是一个游标对象(可迭代的)
for i in result:
print(i)