mongodb資料庫使用03、python和mongodb的互動

鞍-發表於2020-11-29

--官方文件: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)

 

相關文章