mongodb数据库操作

软件下载地址:
链接: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(),后面忘了加括号,导致排查了好长时间

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值