zoukankan      html  css  js  c++  java
  • python操作Mongodb

    安装

    pip install Pymongo
    

    操作

    # 1.导入pymongo
    from pymongo import MongoClient
    
    # 创建连接 MongoDB客户端
    MC = MongoClient('127.0.0.1', 27017)
    
    # 选择或创建数据库(在内存中)
    db = MC['mdb']
    
    player_info = {
        'nickname': '小白龙',
        'atc': 5,
        'def': 99,
        'hp': 500,
        'skill': [
            {
                'name': '铁头功',
                'def': 50
            },
            {
                'name': '吃包子',
                'hp': 100
            }
        ]
    }
    # 创建一条数据
    res = db.player.insert_one(player_info)
    print(res.inserted_id)  #返回当前新增数据的Objectid  是bson类型 不能被json序列化,可以转换为字符串
    # 创建多条
    res = db.player.insert_many([player_info])
    print(res.inserted_ids) #当前新增数据们的Objectid
    
    # 查询数据
    res = db.player.find({}) # 返回一个Cursur对象
    for i in res:
        print(i) # 返回字典
    
    # 查询符合条件的第一条数据
    res = db.player.find_one({})
    print(res)  # 直接返回字典,省略了上面的for循环
    
    
    # 更新一条数据
    res = db.player.update_one({'nickname': "小白痴"},{'$set':{'hp': 350}})
    print(res)
    # 更新所有数据
    res = db.player.update_many({},{'$inc': {'atc': 20}})
    print(res)
    
    # 删除
    from bson.objectid import ObjectId
    res = db.player.delete_one({'_id': ObjectId("adyu13241jhasd7678asd")})
    print(res.delete_count) # 返回0或1  0表示没有删除成功 1表示删除成功
    
    # 排序,选取,跳过
    from pymongo import ASCENDING, DESCENDING
    res = db.player.find({}).limit(2).skip(2).sort("_id", ASCENDING) # ASCENDING升序 DESCENDING倒序
    for i in res:
        print(i)
    
    # 高级查询操作  $or $and $all $in
    res = list(MongoDB.user.find({"$and":[{"name":"Alexander"},{"age":999}]})) # 并列条件
    res = list(MongoDB.user.find({"$or":[{"name":123},{"age":999}]})) # 或条件
    res = list(MongoDB.user.find({"name":{"$in":[123,222,55,66,7]}})) # 在...里面
    # $all $in 针对 Array
    res = list(MongoDB.user.find({"hobby":{"$in":[0]}}))
    res = list(MongoDB.user.find({"hobby":{"$all":[1,7,3,9,0]}})) # 子集查询
    print(res)
    

  • 相关阅读:
    算法:POJ1008 Maya Calendar
    给我的十八岁
    算法:POJ1007 DNA sorting
    算法:POJ1006 三重峰值问题
    【树链剖分】洛谷P3384树剖模板
    【树链剖分】洛谷P3379 树链剖分求LCA
    【Tarjan缩点】PO3352 Road Construction
    【Dijkstra堆优化】洛谷P2243电路维修
    【Tarjan缩点】POJ2186 Popular Cows
    【最短路·差分约束】洛谷P1250
  • 原文地址:https://www.cnblogs.com/weiweivip666/p/14051014.html
Copyright © 2011-2022 走看看