zoukankan      html  css  js  c++  java
  • 使用python操作MongoDB

    安装模块

    连接数据库

    from pymongo import MongoClient
    
    connect = MongoClient(host="127.0.0.1", port=27017)  # 连接到数据库主机
    # 返回一个连接
    # MongoClient(host=['127.0.0.1:27017'], document_class=dict, tz_aware=False, connect=True)
    
    db = connect["day120"]  # 获取指定库的连接

    查 find

    # 查询匹配到的所有数据
    print
    (list(db.table01.find())) # 查询table01这张表的所有数据, 返回的是一个能够迭代的对象(使用迭代器的方法取值) # 当查询一个不存在或者为空的表时, 返回一个空列表
    # 查询匹配到的所有数据 print(db.table01.find_one({"name": "sath"})) # 查询到: 返回一个字典, 注意字典中有ObjectId对象 # 查询不到返回一个None

    增加 insert

    # 插入一条数据
    ret = db.table01.insert_one({"name": "yyy"}) # insert_one: 返回一个插入结果对象(InsertOneResult) # 使用InsertOneResult.inserted_id能够获取到刚插入的数据的ObjectId类型的对象 print(str(ret.inserted_id), type(ret.inserted_id)) # 5c2987a219b4ead318f8efc3 <class 'bson.objectid.ObjectId'>
    # 插入多条数据 ret
    = db.table01.insert_many([{"name": "xxx"}, {"name": "yyy"}]) print(ret, type(ret), dir(ret)) # 插入多条数据, 返回的是InsertManyResult对象 # 使用InsertManyResult.inserted_ids能获取插入的所有数据的ObjectId print(ret.inserted_ids) # [ObjectId('5c2988e319b4eafb7416e67c'), #ObjectId('5c2988e319b4eafb7416e67d')] # 返回的是一个列表, 里面存放所有的刚插入的数据的ObjectId ids = list(map(lambda x: str(x), ret.inserted_ids)) print(ids) # ['5c2988e319b4eafb7416e67c', '5c2988e319b4eafb7416e67d']

    更新 update

    db.table01.update({条件}, {修改的值})
    # 值相等的不会被更新
    # 更新匹配到的第一数据
    # ret = db.table01.update({"name": "yyy"}, {"$set": {"age": 68}})
    print(ret, type(ret), dir(ret))
    # 返回一个字典
    # {'n': 1, 'nModified': 1, 'ok': 1.0, 'updatedExisting': True}
    
    
    # 更新匹配到的第一条数据
    ret = db.table01.update_one({"name": "yyy"}, {"$set": {"age": 48}})
    print(ret, type(ret), dir(ret))
    # 返回一个更新结果对象
    
    
    # 更新所有匹配到的数据
    ret = db.table01.update_many({"name": "yyy"}, {"$set": {"age": 45}})
    # 返回一个更新结果对象
    # ret.modified_count     更新的条目数     7
    # ret.raw_result        更新的结果信息     {'n': 7, 'nModified': 7, 'ok': 1.0, 'updatedExisting': True}
    # ret.matched_count     # 匹配到的条目数       7
    print(ret, type(ret), dir(ret))

    删除 delete, remove

    # 删除匹配到第一条数据
    db.table01.delete_one({条件})
    ret = db.table01.delete_one({"name": "sath"})
    print(ret.raw_result, type(ret), dir(ret))
    # 返回删除的结果对象
    # {'n': 1, 'ok': 1.0}
    # 常用方法:
    # 'deleted_count',
    # 'raw_result'
    
    # 删除所有匹配到的数据
    ret = db.table01.delete_many({"name":"xxx"})
    print(ret.raw_result, type(ret), dir(ret))
    # 返回一个删除结果对象
    # 常用方法
    # 'deleted_count',
    # 'raw_result
    
    # 删除所有的数据
    ret = db.table01.remove()
    print(ret, type(ret), dir(ret))
    # 返回一个字典
    # {'n': 17, 'ok': 1.0}
  • 相关阅读:
    《重构》读书笔记
    每周总结
    《修改代码的艺术》读书笔记
    每周总结
    每周总结
    《修改代码的艺术》读书笔记
    每周总结
    第二周周总结
    以淘宝网为例,描绘质量属性的六个常见属性场景
    机器学习第八讲
  • 原文地址:https://www.cnblogs.com/594504110python/p/10201733.html
Copyright © 2011-2022 走看看