• MongoDB


    MongDB

    文件形数据库
    非关系形
    默认端口27017
    

    mongoDB的使用

    1.windows需要配置环境变量
    2.mongod --dbpath="F:/data/db"          #--dbpath 指定mongoDB的数据存储目录  #注意空格
    	--->客户端开启 mongo   --->默认自己电脑和默认端口
    
    3.mongoDB数据库的新建
    	--->  使用了不存在的对象,即 创建该对象
    

    mongodb指令

    
    	show databases		--->查看本地磁盘数据库
    	use database_name	--->切换当前使用的数据库
    		--->use 不存在的数据库名,即 在内存中创建该数据库
    	db				   --->查看当前使用的数据
    	show tables         --->查看数据库磁盘中所有的表
    	db.不存在的表名       --->在数据库中(内存中)创建该表
    	
    	增删改查
    	------------------------------------------------------
    	db.表名.insert({})      --->增
    		db.user.insert[{},{}]    增加多条 
    	
    	db.表名.find({查询条件})   --->查
    		--->db.表名.find({查询条件:1,查询条件:2})   --->并列条件查询
    		--->db.表名.findOne({查询条件:x})   --->查询条件的第一条数据
    		--->$数据比较符
    			$lt  小于
    			$lte  小于等于
    			$gt   大于
    			$gte  大于等于
    			$eq   等于
    			$noeq 不等于
    			例:
    				db.表名.find({age:{$gt:70)    --->年龄大于70
    	db.表名.update        --->改
    		所有mangodb的修改全部基于 修改器($修改器   关键字)
    		
    			$set	--->强制将某字段修改。如果该字段不存在即创建该字段并赋值
    				db.user.update({age:66.66},{$set:{age:44}})
    				
    			$unset	 --->删除字段
    				db.user.update({age:66.66},{$unset:{ag11e:1}})
    				
    			$inc	---> 引用增加,先引用原有数据,在原有数据基础上增加(加负数即为减少)
    				db.user.update({age:66.66},{$inc:{age:1}})
    				
    		针对 Array(list)操作
    			$push ==append
    			$pushAll ==extends
    			$pull ==remove()
    			$pullAll   遍历删除所有符合条件的数据
    				db.user.update({age:66.66},{$pullall:{hobby:[1,2,3,4,5]}})
    			$pop  ~= pop()
    				删除Array最后一条或者第一条(-1为从上往前删,1从下往上删)
    				
    				
    	db.表名.remove         --->不写条件删除表
    		--->db.表名.remove({查询条件})   --->删除指定条件 
    

    高阶增删该查(官方推荐)

    增:
    	db.mongo1.insertOne({})			--->增加一条数据
        db.mongo1.insertMany([{},{}])	--->增加多条数据
    
    改:
        db.mongo1.updateOne({},{$set:{}})	--->修改第一条数据
        db.mongo1.updateMany({},{$set:{}})	--->修改符合条件的所有数据
    
    删:
    	db.mongo1.deleteOne({})		--->删除第一条数据
    	db.mongo1.deleteMany({})	--->删除符合条件的所有数据
    
    $关键字的修改:
    	$是用来存储符合当前Array条件元素的下标索引
    	
    例:
    	db.user.updateOne({name:"太白",hobby:"合计"},{$set:{"hobby.$":"飙车"}})
    解析:
    	当前Array    - ["抽烟","喝酒",'烫头']
    	条件元素     - {hobby:"喝酒"}
    	~~~~	10.53
    

    mongoDB的数据类型

    Object  ID :Documents 自生成的 _id
    String: 字符串,必须是utf-8
    Boolean:布尔值,true 或者false (这里有坑哦~在我们大Python中 True False 首字母大写)
    Integer:整数 (Int32 Int64 你们就知道有个Int就行了,一般我们用Int32)
    Double:浮点数 (没有float类型,所有小数都是Double)
    Arrays:数组或者列表,多个值存储到一个键 (list哦,大Python中的List哦)
    Object:如果你学过Python的话,那么这个概念特别好理解,就是Python中的字典,这个数据类型就是字典
    Null:空数据类型 , 一个特殊的概念,None Null
    Timestamp:时间戳
    Date:存储当前日期或时间unix时间格式 (我们一般不用这个Date类型,时间戳可以秒杀一切时间类型)
    

    选取,跳过,排序

    排序
    	db.user.find({}).sort({age:-1})     倒序
    	db.user.find({}).sort({age:1})      正序
    
    跳过
    	db.user.find({}).skip(跳过条目)
    
    选取
    	db.user.find({}).limit(500)   选取500条数据,如果数据小于500条,则全部选区
    
    组合使用
    	db.user.find({}).sort({age:-1}).skip(1).limit(2)
    都存在时执行顺序为:
    	sort>skip>limit
    

    python操作mongodb

    导入PyMongo

    from pymongo import MongiClient
    

    创建连接(创建mongodb客户端)

    MC = MongoClient("127.0.0.1",27017)   #IP地址,端口号
    

    选择或者创建数据库(内存)

    db=MC["s22"]      #有则选择,无则创建
    

    增加数据到数据库

    res=db.player.insert_one(#对象)       #增加一个
    res.inserted_id   #得到一个bson ID ,不能直接被JSON序列化
    
    res=db.player.insert_many([#对象1,#对象2])   #增加多个
    res.inserted_ids   #返回一个列表,列表内为objectID
    

    查询数据

    res=db.player.find({})     #res得到的结果为对象
    
    res=db.player.find_one({"name":"luyi"})   #查询符合条件的第一条数据
    
    res=db.player.find_one({'def':{"$gt":80}})   #查询符合条件大于80的数据,lt表示小于
    

    更新数据

    res=db.player.update_one({'name':'luyi'},{'$set':{'hp':80}})    #修改符合条件的第一条数据
    
    res=db.player.update_many({},{'$set':{'hp':80}})    #修改符合条件的所有数据,空代表所有数据
    

    删除数据

    res=db.player.delete_one({})         #删除符合条件的数据
    res=db.player.delete_one({'_id':objerctID("ID")})   #删除该ID(必须objectID,直接写ID无法删除)
    
    res.deleted_count     #查看删除数据的条数
    

    将数据使用JSON转化后发送

    res=db.player.find_one({"name":"luyi"})     #查出该条数据
    
    res['id']=str(res.get('id'))   #因为存在objectID对象,需要转化成字符串再传输
    

    排序,选取,跳过

    from pymongo import ASCENDING,DESCENDING     #ASCE 正序,DESC  倒序
    res=db.player.find({}).limit(2),skip(2).sort("_id",DESCENDING)  #先倒序排列,后跳过,然后选取
    

    flask+mongo

    使用res=request.form.to_dict()   #将获取到的数据转换成字典
    
    dic=MongoDB.user.find_one(res)   #使用转换的字典查询
    
    dic["_id"]=str(dic['_id'])    #需要将objectID转换成字符串
    
  • 相关阅读:
    grpc 浅谈
    ticket项目所得
    odoo 安装
    Ubuntu 设置系统环境变量和开机自启动
    supervisor 错误集合
    Python之路--前端知识--HTML
    Python之路--Python基础14--MySQL
    Python之路--Python基础13--异步IO、RedisMemcached缓存、RabbitMQ队列
    Python之路--Python基础12--并发编程之协程
    Python之路--Python基础11--并发编程之线程
  • 原文地址:https://www.cnblogs.com/luyi84895838/p/11627481.html
Copyright © 2020-2023  润新知