软件下载地址:
链接:https://pan.baidu.com/s/1qygHR0nrS8yQi7tJY9s6qA
提取码:uj0i
需要安装mongobd+robo 3T,robo是GUI界面型,一起配合使用
mongobd是一个文档型数据库,是No-SQL型,不需要select update等,存储格式是json格式
注:
mongobd安装,win10系统安装过程中不要勾选其中一个弹窗,否则不能安装成功(呃呃呃,忘了具体是不能勾选其中哪个了,)
一,安装:
安装路径:
自己建一个存储数据的data文件,我是为了方便也放到了mongodb的路径下:
二, 启动mongobd,创建json数据
{你的安装目录}\bin\mongod.exe --dbpath={你的数据目录}\data
例如:D:\mongdb\bin\mongd.exe --dbpath=D:\mongdb\data
打开robot3t界面,新建一个数据库,链接端口号默认是:27017:
json数据:
三,相关操作
命令使用:
D:\mongodb\bin\mongo.exe 进入命令(安装路径下的bin目录下的mongo.exe )
show databases;
use testfan 切换testfan数据库
show collections 查看有哪些表
db 是当前数据库
db.test.find() 当前数据库下的test表,find()查找所有
bojectid
相当于数据的身份证,区分每个数据,是按一定算法生成的
主要是为了保证分布式环境下id唯一性,涉及到的因素有unix时间戳,mongodb机器,多个
四,python操作mongodb
使用pymongo模块,使用>>pip3 install pymongo
mongodb的一个特点是:用的数据库或者表不存在时,不会报错,会自动给创建一个
链接数据库:
_datebase = self.client.get_database(database)
_collection = _datebase.get_collection(collection)
增
_collection.insert_one(document)
_collection.insert_many(document)
删
_collection.delete_many(filter)
改
_collection.update_one(filter,{"$set":document}) --$set是特有的指令
查
_collection.find(filter)
redis,mongodb,mysql,es数据库区别
redis是在mongodb和mysql的前面,redis 当作缓存用的,数据存在内存中,比较快
mongodb和mysql是存在硬盘的
mysql适合存储数据有内在关联的
mongodb,是文档型的,数据不是很好的结构化,相对独立
elasticsearch主要是搜索使用
在公司中使用将自己的前后端结和起来,自己电脑的服务器需要运维申请,然后给自己指定一个域名,这样自己就可以使用了
代码:
from pymongo import MongoClient
class Mongo():
def __init__(self,host="localhost", port=27017,database='config',collection='info'):
self.clicet =MongoClient()
self.database = self.clicet.get_database(database)
self.collection = self.database.get_collection(collection)
def search(self ,filter,show):
res_lis = []
results=self.collection.find(filter,show)
for result in results:
res_lis.append(result)
return res_lis
def insert(self, document):
if isinstance(document,dict):
self.collection.insert_one(document)
else:
self.collection.insert_many(document)
def delete(self ,filter):
results =self.collection.delete_many(filter)
def update(self ,filter ,document):
self.collection.update_one(filter, {"$set": document})
if __name__=="__main__":
mong = Mongo()
print(mong.search({},{"_id":0}))
其他:
1,使用mongodb查询数据返回给前端时,不要将’_id’的objectid一起查询出来,json不能处理"_id" : ObjectId(“5db2c62182cce063e402bc31”)数据,导致报错
2,layui处理返回的data数据必须是[{},{},{}]形式的,我们查询出的mongodb数据格式是json格式,后端返回数据时没有处理,导致前端js文件会报错
3,选择一行编辑时,如果需要将这一行的数据代入到弹层输入框里,使用KaTeX parse error: Expected 'EOF', got '#' at position 3: ("#̲name").val(data…("#name").val(value);将值带入输入框
这里data=table.checkStatus(‘info’).data
4,操作数据库初始化时,self.client=MongoClient(),后面忘了加括号,导致排查了好长时间