• mongodb


    MongoDB:
    	引用了不存在的对象即创建改对象
    	database	<->  Database
    	table		<->  Collection
    	字段		<->  Field
    	row			<->  Document
    	
    1.MongoDB增删改查:
    	增:
    		官方不推荐写法:
    		db.users.insert([{}]) 
    		db.users.insert({})
    		官方支持写法:
    		db.users.insertMany([{name:"金角大王八",age:"84"}])
    		db.users.insertOne({name:"银角大王八",age:"73"})
    	
    	查:
    		db.users.find({age:73,name:"武大郎"})
    		db.users.findOne({age:73})
    		
    	改:MongoDB修改器 $set $unset
    		官方不推荐写法:
    		db.users.update({age:73},{$set:{age:74}})
    		官方支持写法:
    		db.users.updateOne({age:73},{$set:{age:74}})
    		db.users.updateMany({age:74},{$set:{age:73}})
    		$set = dict["age"] = 73  # 修改字典的值
    		$unset = del dict["age"]  # 删除字典的键
    	
    	删:
    		官方不推荐写法:
    		db.users.remove({})
    		官方支持写法:
    		db.users.deleteOne({age:"84"})
    		db.users.deleteMany({age:"84"})
    		
    	
    	2.MongoDB的数据类型
    		首先我们要先了解一下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类型,时间戳可以秒杀一切时间类型)
    
    		看着挺多的,但是真要是用的话,没那么复杂,很简单的哦
    		
    	3.$关键字:
    	修改器
    		$set : 强制覆盖
    		$unset : 删除字段
    		$inc :引用自增 $inc:{age:-1} # -1是增加的数值,负数表示减
    		
    		[]:
    		$push append(7) db.sss.updateOne({name:"AlexDSB"},{$push:{hobby_1:7}})  # 添加7到hobby_l 列表中,其中需要满足条件name = AlexDSB
    		$pull remove(1) db.sss.updateOne({name:"AlexDSB"},{$pull:{hobby_1:1}})  # 删除hobby_l列表中的1
    		$pop  pop() db.sss.updateOne({name:"AlexDSB"},{$pop:{hobby_1:1/-1}})  # 1是从hobby_l 列表的尾部删除一个数,-1是从hobby_l列表的头部删除一个数
    	
    	查询关键:
    		$or  $or:[{age:1},{name:2}]
    		$all {u_list:{$all:[321,123]}}  # 查询条件是必须含有321和123,可以多含有别的值,但是不能少
    		$in  {age:{$in:[10,15]}}
              $nin 不在范围内 # where age=10 or age=15 or age=20 数学比较符: $lt {age:{$gt:10}} $lte $gt $gte $eq : $ne {age:{$ne:15}} # 不等于 4. $ 存放array的下标索引 {u_list:666,1},{hobby:2,2} {name:1,u_list:666},{$set:{"u_list.$":999}} Object: ({name:"AlexDSB","hobby.name":"个人计算机"},{$set:{"hobby.$.name":"PC"}}) 5.skip limit sort sort: sort({ age:1 / -1}) -1:倒序 1:正序 skip: skip(2) 跳过两条 limit: limit(2) 选取两条 1.sort > 2.skip > 3.limit 执行的先后顺序,优先sort,其次skip,最后limit

        

         

    Python中使用mongodb
    
    import pymongo
    from bson import ObjectId
    mongo_cilent = pymongo.MongoClient(host="127.0.0.1",port=27017)
    DB = mongo_cilent["day122"]
    
    res = list(DB.users.find()) # <=100000
    print(res)
    
    import json
    res = DB.users.find_one({"$or":[{"name":5},{"age":20}]}) # <=100000
    res["_id"] = str(res["_id"])
    res = json.dumps(res)
    print(res)
    
    # 增
    res = DB.users.insert_one({"name":999})
    print(res.inserted_id,type(res.inserted_id)) # Object 不能被JSON
    
    res = DB.users.insert_many([{"name":"jwb"},{"name":"ywb"},{"name":"OldWB"}])
    print(res.inserted_ids)
    
    # 删除
    res = DB.users.delete_one({"name":"ywb"})
    print(res.deleted_count)
    res = DB.users.delete_many({"name":"jwb"})
    print(res.deleted_count,dir(res))
    
    # Update
    res = DB.users.update_one({"name":"yinwang8"},{"$set":{"name":"ywb"}})
    print(res.modified_count,dir(res))
    #
    res = DB.users.update_many({"name":"ywb"},{"$set":{"name":"YWB"}})
    print(res.modified_count,dir(res))
    
    DB.sss.update_one({"obj.k3":"v3"},{"$set":{"obj.k3":"vv3"}})
    res = DB.sss.find_one({"obj.k3":"v3"})
    res["obj"]["k3"] = "vv3"
    DB.sss.update_one({"obj.k3":"v3"},{"$set":res})
    hobby_list= [{"name":999,"year":1},
      {"name":666,"year":1},
      {"name":555,"year":1},
      {"name":888,"year":1},
      {"name":777,"year":1}]
     res = DB.sss.find_one({"_id":ObjectId("5bfe0708f7e06f13407ee6bd")})
     res["hobby"].extend(hobby_list)
     DB.sss.update_one({"_id":ObjectId("5bfe0708f7e06f13407ee6bd")},{"$set":res})
    
     res = DB.users.find({}).limit(2).skip(2).sort("name",pymongo.DESCENDING)
     print(list(res))
    
     res = DB.sss.find_one({})
     for index,i in enumerate(res["hobby_1"]):
         print(index)
         for index2,j in enumerate(i) :
             if j.get("name") == 1:
                 print(index2)
                 res["hobby_1"][index][index2]["name"]=10
    
     DB.sss.update_one({"_id":res["_id"]},{"$set":res})


      

    save函数
    1.可以在文档不存在的时候插入,存在的时候更新,只有一个参数文档。
    2.要是文档含有"_id",会调用upsert。否则,会调用插入。
    > db.a.find()
    { "_id" : ObjectId("50026affdeb4fa8d154f8572"), "desc" : "hello world1!", "num": 50,"sname" : "jk", "type" : "1", "uid" : "20120002" } 
    > var o = db.a.findOne()
    > o.num = 55
    > db.a.save(o)
    > db.a.find()
    { "_id" : ObjectId("50026affdeb4fa8d154f8572"), "desc" : "hello world1!", "num": 55,"sname" : "jk", "type" : "1", "uid" : "20120002" }
        
          
    

      

  • 相关阅读:
    windows笔记进程的句柄
    windows笔记创建线程的函数CreateThread
    c#实现从其他网站抓取imei码信息,手工输入验证码
    Linux下自动修改用户密码的方法(直接通过命令而不是在终端输入密码)
    Redis学习笔记List数据类型
    在Linux(centos)上安装PHP的mongodb扩展
    CI(codeigniter)如何防止sql注入
    MongoDB增加用户认证: 增加用户、删除用户、修改用户密码、读写权限、只读权限
    Sublime Text编辑器如何显示顶部的菜单栏
    C#图片选择器
  • 原文地址:https://www.cnblogs.com/perfey/p/10038551.html
Copyright © 2020-2023  润新知