跟着这几篇文章走:
https://www.jianshu.com/p/f7ba338016b8
https://blog.csdn.net/weixin_38753698/article/details/100516276
最终决定选用mongodb
下面是 MySQL 和 MongoDB 的基本元件的对应关系:
MongoDB安装
安装mongodb:
sudo apt-get install mongodb
python方面mongodb安装:(意思是上面的才是本体,python其实只是引出一个接口):
pip install Flask-PyMongo (会自动带上pymongo)
查看是否启动mongo及运行状态:
pgrep mongo -l
启动mongo:
sudo service mongodb start
停止mongo:
sudo service mongodb stop
ubuntu操作mongo的更多信息参考:
https://blog.csdn.net/weixin_44274975/article/details/87981809
卸载mongodb:
一、先停止运行mongodb
sudo service mongod stop
二、再卸载MongoDB
sudo apt-get purge mongodb-org*
sudo apt purge mongodb
sudo apt autoremove
三、删除数据库和日志文件(这俩尽量不要删)
sudo rm -r /var/log/mongodb (日志)
sudo rm -r /var/lib/mongodb (数据库)
Python的MongoDB使用
import pymongo
if __name__ == "__main__":
#连接, 端口默认27017
client = pymongo.MongoClient(host='127.0.0.1')
# 创建数据库名为 huajuan
# 注意:如果 MongoDB 中无此库,需要在创建集合并且插入文档后,数据库方可自动创建
huanjuan_db = client.huajuan
db_list = client.list_database_names() #查看已有的数据库
print('db_list',db_list) # 输出db_list ['admin', 'config', 'local'],可以看到huajuan还没被创建
# 创建集合,person 相当于 mysql 的表名
# 当创建了名为 person 的集合时,执行代码,依然没有生成数据库
huajuan_collections = huanjuan_db.person
'''*******'''
'''插入操作'''
'''*******'''
person_one = {
'name': '花卷',
'age': '1.5',
}
result = huajuan_collections.insert_one(person_one) # 文档插入集合
print(result) # 打印结果
print(result.inserted_id) # 打印插入数据的返回 id 标识
db_list = client.list_database_names() #查看已有的数据库
print('db_list',db_list) # 此时输出 db_list ['admin', 'config', 'huajuan', 'local']
#一次插入多条
insert_list = []
for i in range(3):
person_one = {
'name': '野生喵',
'age': '24',
'height': '175',
'weight': '60'
}
person_two = {
'name': '野生狗子',
'age': '2',
'height': '10',
'weight': '3'
}
insert_list.append(person_one)
insert_list.append(person_two)
result = huajuan_collections.insert_many(insert_list)
print('insert_many result:',result)
'''*******'''
'''查找操作'''
'''*******'''
#查询一条,用find_one()
result = huajuan_collections.find_one()
if(result is not None):
print('Find result:',result)
print('result.name',result['name'])
print('result.age',result['age'])
#查询多条,用find()
results = huajuan_collections.find()
for cnt,item in enumerate(results):
print('Find Index:',cnt,' result.age',item['age'],' result.name',item['name'])
#find指定想要返回的字段,1代表要,0代表不要
#注意除了_id,不能同时设置1和0. 也就是说,如果你设置某些为0,则其余的都为1. 反之亦然
results = huajuan_collections.find({}, {'_id': 0,'age':1})
for a in results:
print("_id': 0,'age':1 ",a)
results = huajuan_collections.find({}, {'image':0,'age':0})
for a in results:
print("'image':0,'age':0 ",a)
#查找特定条件 , 比如age=24的
result2 = huajuan_collections.find({'age': '24'})
for item in result2:
print('特定条件: ',item)
'''*******'''
'''修改操作'''
'''*******'''
#修改第一个符合条件的
query_name = {"name": "花卷"}
new_value = {"$set": {"age": "996"}}
huajuan_collections.update_one(query_name, new_value)
#修改所有符合条件的
query_name = {"name": "野生喵"}
new_value = {"$set": {"age": "888222"}}
huajuan_collections.update_many(query_name, new_value)
'''*******'''
'''删除操作'''
'''*******'''
#单条删除
query_name = {"name": "花卷"}
huajuan_collections.delete_one(query_name) # 删除单条
#多条删除
query_name = {"name": "野生狗子"}
huajuan_collections.delete_many(query_name) # 删除所有符合条件的
#删除所有数据
huajuan_collections.delete_many({}) # 删除所有数据
db_list = client.list_database_names() #查看已有的数据库
print('db_list',db_list) # 输出db_list ['admin', 'config', 'huajuan', 'local']