zoukankan      html  css  js  c++  java
  • pymongo

    python操作MongoDB,需要安装模块 pymongo

    pip install pymongo

     连接

    新建一个文件 test_mongo.py

    import pymongo
    
    # 连接数据库
    mclient = pymongo.MongoClient(host="127.0.0.1", port=27017)
    mongo_db = mclient["testdb"]  # 切换数据库,不存在则创建
    
    res = mongo_db.goods.find()
    print(res)

    执行输出:

    <pymongo.cursor.Cursor object at 0x000001F68B7D09E8>

    插入数据

    import pymongo
    
    # 连接数据库
    mclient = pymongo.MongoClient(host="127.0.0.1", port=27017)
    mongo_db = mclient["testdb"]  # 切换数据库,不存在则创建
    
    # 插入多条数据
    res = mongo_db.goods.insert_many([{"name" : "酸菜","price" : "1"},{"name" : "白菜","price" : "2"},{"name" : "小青菜","price" : "0.5"},])
    print(res)

     查询数据

    查询所有

    可以将结果转换为列表

    import pymongo
    
    # 连接数据库
    mclient = pymongo.MongoClient(host="127.0.0.1", port=27017)
    mongo_db = mclient["testdb"]  # 切换数据库,不存在则创建
    
    # 插入多条数据
    res = mongo_db.goods.find()
    print(list(res))

    执行输出:

    [{'_id': ObjectId('5b991895e125324a58178dd3'), 'name': '酸菜', 'price': '1'}, {'_id': ObjectId('5b991895e125324a58178dd4'), 'name': '白菜', 'price': '2'}, {'_id': ObjectId('5b991895e125324a58178dd5'), 'name': '小青菜', 'price': '0.5'}]

     也可以对结果做for循环

    import pymongo
    
    # 连接数据库
    mclient = pymongo.MongoClient(host="127.0.0.1", port=27017)
    mongo_db = mclient["testdb"]  # 切换数据库,不存在则创建
    
    # 插入多条数据
    res = mongo_db.goods.find()
    for i in res:
        print(i)

    执行输出:

    {'_id': ObjectId('5b991895e125324a58178dd3'), 'name': '酸菜', 'price': '1'}
    {'_id': ObjectId('5b991895e125324a58178dd4'), 'name': '白菜', 'price': '2'}
    {'_id': ObjectId('5b991895e125324a58178dd5'), 'name': '小青菜', 'price': '0.5'}

     查询单条

    import pymongo
    
    # 连接数据库
    mclient = pymongo.MongoClient(host="127.0.0.1", port=27017)
    mongo_db = mclient["testdb"]  # 切换数据库,不存在则创建
    
    # 插入多条数据
    res = mongo_db.goods.find_one()
    print(res)

    执行输出:

    {'_id': ObjectId('5b991895e125324a58178dd3'), 'name': '酸菜', 'price': '1'}

    查询指定id呢?

    由于_id是ObjectId对象,需要导入模块

    import pymongo
    from bson import ObjectId
    
    # 连接数据库
    mclient = pymongo.MongoClient(host="127.0.0.1", port=27017)
    mongo_db = mclient["testdb"]  # 切换数据库,不存在则创建
    
    # 插入多条数据
    res = mongo_db.goods.find({"_id":ObjectId("5b991895e125324a58178dd5")})
    for i in res:
        print(i)

    执行输出:

    {'_id': ObjectId('5b991895e125324a58178dd5'), 'name': '小青菜', 'price': '0.5'}

     更新

    import pymongo
    from bson import ObjectId
    
    # 连接数据库
    mclient = pymongo.MongoClient(host="127.0.0.1", port=27017)
    mongo_db = mclient["testdb"]  # 切换数据库,不存在则创建
    
    
    res = mongo_db.goods.update_one({"name":"小青菜"},{"$set":{"price":2}})
    print(res)

    执行输出:

    <pymongo.results.UpdateResult object at 0x000001AF61E332C8> None

     删除

    import pymongo
    from bson import ObjectId
    
    # 连接数据库
    mclient = pymongo.MongoClient(host="127.0.0.1", port=27017)
    mongo_db = mclient["testdb"]  # 切换数据库,不存在则创建
    
    
    res = mongo_db.goods.delete_one({"name":"小青菜"})
    print(res,res.raw_result)

    执行输出:

    <pymongo.results.DeleteResult object at 0x000001825B2134C8> {'n': 0, 'ok': 1.0}

     排序

    import pymongo
    from bson import ObjectId
    
    # 连接数据库
    mclient = pymongo.MongoClient(host="127.0.0.1", port=27017)
    mongo_db = mclient["testdb"]  # 切换数据库,不存在则创建
    
    
    res = mongo_db.goods.find({}).skip(1).limit(2)
    print(list(res))

    执行输出:

    [{'_id': ObjectId('5b991895e125324a58178dd4'), 'name': '白菜', 'price': '2'}]

    进阶

    import pymongo
    from bson import ObjectId
    
    # 连接数据库
    mclient = pymongo.MongoClient(host="127.0.0.1", port=27017)
    mongo_db = mclient["testdb"]  # 切换数据库,不存在则创建
    
    
    res = mongo_db.goods.find({}).sort("age",pymongo.DESCENDING)
    print(list(res))

    执行输出:

    [{'_id': ObjectId('5b991895e125324a58178dd3'), 'name': '酸菜', 'price': '1'}, {'_id': ObjectId('5b991895e125324a58178dd4'), 'name': '白菜', 'price': '2'}]

    高级操作

    import pymongo
    from bson import ObjectId
    
    # 连接数据库
    mclient = pymongo.MongoClient(host="127.0.0.1", port=27017)
    mongo_db = mclient["testdb"]  # 切换数据库,不存在则创建
    
    
    res = mongo_db.goods.find({}).sort("age",pymongo.DESCENDING).skip(1).limit(2)
    print(list(res))

    执行输出:

    [{'_id': ObjectId('5b991895e125324a58178dd4'), 'name': '白菜', 'price': '2'}]
  • 相关阅读:
    安装完QQ必须要删除掉的几个恐怖文件
    dede实战系统:更换成kindEditor编辑器
    PHP 5.4 中经 htmlspecialchars 转义后的中文字符串为空的问题
    DEDECMS图片集上传图片出错302的解决办法
    dedecms安装完成后登录后台出现空白
    OFV.msi是什么 为什么更新时无法安装
    CentOS 挂载NTFS分区的两种方法
    centos使用yum安装gcc
    NetBeans菜单栏字体太小了
    注入漏洞页
  • 原文地址:https://www.cnblogs.com/baijinshuo/p/10279688.html
Copyright © 2011-2022 走看看