python操作mongodb基本使用

使用pymongo,具体可以参考官方文档:

语法上基本和原生mongodb是一样的,所以非常容易入手...

https://pymongo.readthedocs.io/en/stable/tutorial.html

日常使用

import pprint

import pymongo
from pymongo.collection import Collection
from pymongo.database import Database

if __name__ == '__main__':
    # 初始化客户端
    # mongo_client = pymongo.MongoClient(host="127.0.0.1", port=27017, username="", password="")
    mongo_client = pymongo.MongoClient(host="127.0.0.1", port=27017, )

    # 获取所有的数据库名称
    print(mongo_client.list_database_names())

    # 获取或创建一个数据库(也就是 use xxxxx)
    # 有三种方式:
    # 第一种就是用点分方法获取和创建,
    db: Database = mongo_client.spider
    # print(dir(db))
    # print(type(db))
    
    # 第二种就是用列表引用
    db: Database = mongo_client["spider"]
    
    # 第三种就是通过get_database()方法获取
    database = mongo_client.get_database("spider")

    # 权限认证
    # 新版没找到,只能在初始化MongoClient时设置。

    # 获取当前使用的数据库名
    print(f"{db.name=}")

    # 获取当前数据库下的所有集合名
    print(db.list_collection_names())

    # 创建集合(**一般只有在需要创建固定集合时候才会使用**,因为mongodb插入文档并不需要集合存在就可以直接插入)
    # db.create_collection()

    # 获取数据库下的某个集合  等同于命令:db.xxxxx
    collection: Collection = db.test
    # print(dir(collection))
    # print(type(collection))
    
    # 还可以通get_collection()方法获取,差别在于会带提示
    get_collection = db.get_collection("123123")
    print(f"{get_collection=}")
    
    # 更新,upsert=True如果不存在则插入。
    # collection.update_one({}, {}, upsert=True)

    # 会返回一个游标对象,直接遍历就可以了
    cursor = collection.find({"age": {"$gt": 18}})
    for item in cursor:
        pprint.pprint(item)
    # 关闭游标对象。
    cursor.close()
    
    # 关闭客户端链接
    mongo_client.close()
posted @ 2023-07-17 11:54  蕝戀  阅读(21)  评论(0编辑  收藏  举报