zoukankan      html  css  js  c++  java
  • Mongodb-- python中使用pymongo连接mongodb数据库

    一.使用

    通过pip或者pychrm下载pymongo模块

    import json
    
    from pymongo import MongoClient
    from bson import ObjectId
    
    mc = MongoClient("127.0.0.1",27017)
    MONGODB = mc["数据库名"]
    
    MONGODB.users.find({}) # 可以操作了

    上面的文件一般单独写一个settings.py,在用到的时候,通过引入MONGO来操作

    关于bson:

      mongo中取出的数据有一个'_id'字段相当于mysql中的id, 这个字段的类型是Objectid,所以查询的结果不能直接json序列化,需要将这个'_id'转化为str类型后才能json序列化,相应的,从前端传过来的'_id'也要通过bson转化为ObjectId才能查到Mongodb中的数据

    @au.route('/auto_login',methods=['POST'])
    def auto_login():
        user_info = request.form.to_dict()
        print(user_info)
    
        try:
            user_id = user_info.get('user_id')
            user = MONGODB.users.find_one({'_id': ObjectId(user_id)})
            user['_id'] = str(user['_id'])
            RET = {
                'code': 1,
                'msg': '自动登陆成功',
                'data': user
            }
        except:
            RET = {
                'code': 0,
                'msg': '自动登陆失败',
                'data': {}
            }
    
        return jsonify(RET)

    操作示例

    # MONGODB = mc["admin"]
    # res = MONGODB.users.find_one({"name":"Tom"})
    # res["cours"].append({"name":"Tom","money":"100"})
    # for index,cours in enumerate(res["cours"]):
    #     if cours.get("name") == "Tom":
    #         res["cours"][index]["score"] = 99
    
    
    # MONGODB.users.delete_one({"age":84})
    # MONGODB.users.delete_many({"age":84})
    
    # user = MONGODB.users.find_one({"_id":ObjectId("5cb6eb7322b9441020186701")})
    # print(user.get("_id"),type(user.get("_id")))
    #
    # user["_id"] = str(user["_id"])
    # jsonstr = json.dumps(user)
    # print(jsonstr , type(jsonstr))
  • 相关阅读:
    单例模式
    属性和方法的调用
    整型数从最小到最大取值,二进制变动机制
    java数据类型
    插入字符,数组顺序不变
    运算符“/”
    CentOS7 防火墙(firewall)的操作命令(转)
    面试题4(剑指)-螺旋打印矩阵
    面试题3(剑指)-重建二叉树
    面试题2——遍历二叉树
  • 原文地址:https://www.cnblogs.com/robertx/p/10746745.html
Copyright © 2011-2022 走看看