mongodb命令(四)

本文介绍了如何使用Python的pymongo模块与MongoDB数据库进行交互,包括连接数据库、增删改查等基本操作,详细展示了各个方法的使用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mongodb与python的交互


1. mongdb和python交互的模块
pymongo 提供了mongdb和python交互的所有方法 安装方式: pip install pymongo

2. 使用pymongo

  • 导入pymongo并选择要操作的集合 数据库和集合乜有会自动创建


from pymongo import MongoClient client = MongoClient(host,port) collection = client[db名][集合名]

  • 添加一条数据


ret = collection.insert_one({"name":"test10010","age":33}) print(ret)

  • 添加多条数据


item_list = [{"name":"test1000{}".format(i)} for i in range(10)]     #insert_many接收一个列表,列表中为所有需要插入的字典 t = collection.insert_many(item_list)

  • 查找一条数据


#find_one查找并且返回一个结果,接收一个字典形式的条件 t = collection.find_one({"name":"test10005"}) print(t)

  • 查找全部数据


结果是一个Cursor游标对象,是一个可迭代对象,可以类似读文件的指针,但是只能够进行一次读取
#find返回所有满足条件的结果,如果条件为空,则返回数据库的所有 t = collection.find({"name":"test10005"})     #结果是一个Cursor游标对象,是一个可迭代对象,可以类似读文件的指针, for i in t:     print(i) for i in t: #此时t中没有内容     print(i)

  • 更新一条数据 注意使用$set命令


#update_one更新一条数据 collection.update_one({"name":"test10005"},{"$set":{"name":"new_test10005"}})

  • 更行全部数据


# update_many更新全部数据 collection.update_many({"name":"test10005"},{"$set":{"name":"new_test10005"}})

  • 删除一条数据


#delete_one删除一条数据 collection.delete_one({"name":"test10010"})

  • 删除全部数据


#delete_may删除所有满足条件的数据 collection.delete_many({"name":"test10010"})

例子:
from pymongo import MongoClient

"""
步骤:
1. 导入: from pymongo import MongoClient
2. 链接: client = MongoClient
3. 获取要操作的集合: collection  = client['数据库名']['集合名']
4. 操作集合, 增删改查
5. 关闭数据链接, 释放资源: client.close()
"""

class MongoTest(object):

    def __init__(self):
        """创建client对象, 建立数据库链接"""
        # 开启认证模式
        # 方式1: 分别指定
        # self.client = MongoClient(host='127.0.0.1', port=27017, username='py8', password='123')
        # 方式2: 指定URI
        # self.client = MongoClient('mongodb://py8:123@127.0.0.1:27017')
        # 不开启认证模式
        self.client = MongoClient()
        # self.client = MongoClient(host='127.0.0.1', port=27017)
        # print(self.client)
        self.collection = self.client['py8']['test']

    def __del__(self):
        """ 关闭数据链接, 释放资源"""
        self.client.close()


    def insert_one(self):
        """插入一条数据"""
        self.collection.insert_one({'name':'老王', 'age':18})

    def insert_many(self):
        """插入多条数据"""
        # 准备字典列表
        datas = [{'name': 'test_{}'.format(i), 'age': i} for i in range(20)]
        # 插入多条
        self.collection.insert_many(datas)

    def update_one(self):
        """更新一条数据"""
        # 把年龄小于10岁的改为16岁
        self.collection.update_one({'age':{'$lt': 10}}, {'$set': {'age': 16}})

    def update_many(self):
        """更新多少条件"""
        # 把年龄小于10岁的改为16岁
        self.collection.update_many({'age':{'$lt': 10}}, {'$set': {'age': 16}})

    def find_one(self):
        """查看一条数据"""
        data = self.collection.find_one({'age': {'$lt': 16}})
        print(data)
        print(type(data))

    def find_many(self):
        """查询多条数据"""
        cursor = self.collection.find({'age': {'$lt': 16}})
        # 查询多少数据, 返回时一个游标对象, 可以进行遍历, 但是只能遍历一次
        # print(cursor)
        for data in cursor:
            print(data)

        print('='*50)

        for data in cursor:
            print(data)

    def delete_one(self):
        """删除一条数据"""
        self.collection.delete_one({'age': {'$lte': 16}})

    def delete_many(self):
        """删除多条数据"""
        self.collection.delete_many({'age': {'$lte': 16}})

if __name__ == '__main__':
    mt = MongoTest()
    # mt.insert_one()
    # mt.insert_many()
    # mt.update_one()
    # mt.update_many()
    # mt.find_one()
    # mt.find_many()
    # mt.delete_one()
    mt.delete_many()

 



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值