• MongoDB 基本操作增删改查


    import pymongo
    
    mongo_client = pymongo.MongoClient(host="127.0.0.1",port=27017)
    
    DB = mongo_client["users"]
    
    1.查询
    res = list(DB.school.find())
    res = DB.school.find_one({"class_name":"16"},{"_id":0,"student":1})
    res = DB.school.find_one({"class_name":"16"})
    res = DB.school.find_one({"student.name":"哈哈"})
    res = DB.school.find_one({'$or':[{"class_name":"S16"},{"school_name":"清华"}]})
    res = DB.school.find_one({"userlist":{"$all":[3,4,2]}})
    print(res)
    res["_id"] = str(res.get("_id"))
    import json
    a = json.dumps(res)
    print(a)
    
    2.增加数据
    res = DB.school.insert_one({"name":1})
    print(res,res.inserted_id,type(res.inserted_id))
    res = DB.school.insert_many([{"name":3},{"name":4},{"name":5}])
    print(res,res.inserted_ids)
    奇葩数据
    res = DB.oldboy.insert_one({"user_list":[{"hobby":["抽烟","喝酒"]},{"hobby":[{"name":"car","type":"SUV"},{"name":"motor","type":"BMW"}]}]})
    
    
    3.修改数据
    $ 存储 array 符合条件元素的下标索引
    from bson import ObjectId
    res = DB.school.update_one({"_id":ObjectId("5c7e280ed0df65358812ccab")},{"$push":{"userlist":888}})
    res = DB.school.update_one({"userlist":888},{"$set":{"userlist.$":666}})
    res = DB.school.update_one({"userlist":666},{"$set":{"userlist.0":888}})
    print(res,res.modified_count)
    """
    {
    	"_id" : ObjectId("5c7e3fcbd3620e1130463178"),
    	"user_list" : [
    		{
    		"hobby" : [
    			"抽烟",
    			"喝酒"
    		]
    	},
    		{
    		"hobby" : [
    			{
    			"name" : "car",
    			"type" : "SUV"
    		},
    			{
    			"name" : "motor",
    			"type" : "BMW"
    		}
    		]
    	}
    	]
    }
    """
    res = DB.oldboy.find_one({})
    print(res)
    for index,item in enumerate(res.get("user_list")):
        for hobby,hobby_item in enumerate(item.get("hobby")):
            if type(hobby_item) == dict:
                if hobby_item.get("name") == "motor":
                    res["user_list"][index]["hobby"][hobby]["type"] = "Suzuki"
    
    DB.oldboy.update_one({"_id":res.get("_id")},{"$set":res})
    
    4.删除
    from bson import ObjectId
    res = DB.oldboy.delete_one({'_id': ObjectId('5c7e3fcbd3620e1130463178')})
    print(res,dir(res),res.deleted_count)
    
    
    选取 跳过 排序
    res = list(DB.school.find().limit(5).skip(5))
    print(res,len(res))
    
    排序
    res = list(DB.school.find().limit(5).skip(5).sort("_id",pymongo.ASCENDING))
    res = list(DB.school.find().limit(5).skip(5).sort("_id",pymongo.DESCENDING))
    print(res,len(res))
    

      

  • 相关阅读:
    linux下解除端口占用
    设计模式(二)观察者模式
    设计模式(一) 策略模式
    loj #6235. 区间素数个数
    loj #2013. 「SCOI2016」幸运数字
    loj #6014. 「网络流 24 题」最长 k 可重区间集
    loj #6013. 「网络流 24 题」负载平衡
    loj #2255. 「SNOI2017」炸弹
    loj #2051. 「HNOI2016」序列
    loj #6122. 「网络流 24 题」航空路线问题
  • 原文地址:https://www.cnblogs.com/PythonMrChu/p/10486271.html
Copyright © 2020-2023  润新知