mongodb数据库使用03、python和mongodb的交互

--官方文档:http://api.mongodb.com/python/current/

01、pymongo -- 插数据

--无认证的pymongo连接
    from pymongo import MongoClient

    client = MongoClient(host,port) # 如果是本地连接host,port参数可以省略

    collection = client[db名][集合名]
    # collection = client.db名.集合名 # 与上边用法相同
--代码示例:
from pymongo import MongoClient

def get_db():
    # 数据库连接
    client = MongoClient("127.0.0.1", 27017)
    # 选择一个数据库, 选择一个集合
    col = client['python']['data']

    return col


if __name__ == '__main__':
    col = get_db()
    
    """
    # 插入一条数据
    dic = {'name':'serena',"id":1532}
    col.insert_one(dic)

    # 插入多条数据
    dics = [{'name': 'amy', 'id': 1798},{'name': 'bob', 'id': 1631}]
    col.insert_many(dics)
    """

02、pymongo -- 查数据并遍历

from pymongo import MongoClient

def get_db():
    # 数据库连接
    client = MongoClient("127.0.0.1", 27017)
    # 选择一个数据库, 选择一个集合
    col = client['python']['data']

    return col


if __name__ == '__main__':
    col = get_db()

    # 查询数据遍历
    for i_data in col.find({"name":'amy'}):
        print(i_data)

    # 查询一条数据
    print(col.find_one())  
--除了最基本的:col.find(),还有如图所示的其他查询选择:

03、pymongo -- 更新数据

--这里建议使用:
    --update_one
    --update_many

from pymongo import MongoClient

def get_db():
    # 数据库连接
    client = MongoClient("127.0.0.1", 27017)
    # 选择一个数据库, 选择一个集合
    col = client['python']['data']

    return col


if __name__ == '__main__':
    col = get_db()

    # 查询数据遍历
    for i_data in col.find():
        print(i_data)

    # 更新数据,基本形式:col.update_many({}, {'$set'})
    # 这里不建议使用 update了,建议使用update_one 和 update_many
    # upsert参数:默认为False; upsert=True则先查询是否存在,存在则更新;不存在就插入
    # $set表示指定字段进行更新

    # 表示将所有数据的id字段修改为xxx-xxx-ip-find
    # col.update_many({}, {'$set':{"id":"xxx-xxx-ip-find"}}, upsert=True)
    # 查出"name":"bob"的字段,将其id字段修改为"con_xxx_iP-xxx"
    # col.update_many({"name":"bob"}, {'$set': {"id": "con_xxx_iP-xxx"}}, upsert=True)
    # 查出"name":"bob"的字段,将其整条字段更新
    # col.update_many({"name": "bob"}, {'$set': {"name":"BOB","id": "con_xxx_bob-iP-xxx"}}, upsert=True)
    # 查出"name":"serena"的字段,全部增加属性"class",并赋予默认值"class_null";增加属性以后方便进一步处理
    col.update_many({"name": "serena"}, {'$set': {"class":"class_null"}}, upsert=True)

    # 查询数据遍历
    for i_data in col.find():
        print(i_data)

04、删除数据

from pymongo import MongoClient

def get_db():
    # 数据库连接
    client = MongoClient("127.0.0.1", 27017)
    # 选择一个数据库, 选择一个集合
    col = client['python']['data']

    return col


if __name__ == '__main__':
    col = get_db()

    # 查询数据遍历
    for i_data in col.find():
        print(i_data)

    # 删除一条数据
    # col.delete_one({"name":"bob"})
    # 删除一类数据
    col.delete_many({"name": "bob"})

    print("*"*50)
    # 查询数据遍历
    for i_data in col.find():
        print(i_data)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值