python與MongoDB交互

eg:

import pymongo
from pymongo.results import DeleteResult
from bson.objectid import ObjectId

# 創(chuàng)建數(shù)據(jù)庫連接
''''
# host=None,  : IP 127.0.0.1
# port=None,  :端口  27017
# '''
mongo_client = pymongo.MongoClient(
    host = '127.0.0.1',port=27017
)
# mongo_client = pymongo.MongoClient(
#     'mongodb://127.0.0.1:27017/'
# )
# 需要賬號密碼登陸時
# mongo_client = pymongo.MongoClient(
#     'mongodb://username:password@ip:port'
# )
#選擇數(shù)據(jù)庫
db = mongo_client['mongotest']
# db = mongo_client.mongotest

# 選擇數(shù)據(jù)庫下的集合
col_name = db['test']
# 插入數(shù)據(jù)
# def insert_data():
#     document1 = {
#         'title': 'zhangzengrui',
#         'actors': '未知',
#         'tags': '動作1',
#         'info': '古羅馬傳記1',
#         'age': 12
#     }
#     document2 = {
#         'title': 'zhangzengrui',
#         'actors': '未知',
#         'tags': '動作1',
#         'info': '古羅馬傳記1',
#         'age': 15
#     }
#     document3 = {
#         'title': 'zhangzengrui',
#         'actors': '未知',
#         'tags': '動作1',
#         'info': '古羅馬傳記1',
#         'age': 18
#     }
    # result = col_name.insert(document1)
    # result = col_name.insert([document1,document2,document3])
    # result = col_name.insert_many([document1,document2])
    # print(result)

# def update_data():

    # 指定屬性更新 multi為False時只修改一條
    # upsert = False,表示如要更新的文檔不存在就什么都不做,如為True會插入新文檔
    # result = col_name.update(
#     #     {'title': '斯巴達(dá)克斯3'},
#     #     {'$set': {'info': '1712B'}}
#     # )
#     # print(result)
    # 全文檔更新multi為False時只修改一條
    # result = col_name.update(
    #     {'title': '斯巴達(dá)克斯3'},
    #     {'name': '天真','gender': '女','age': 18}
    # )
    # print(result)

    # result = col_name.update_one(
    #     {'name': '天真'},
    #     {'$set': {'age':20,'class':'1712B'}}
    # )
    # print(result)
    # col_name.update_many()

    # save方法可保存頁可更新 會做全文檔更新
    # result = col_name.save(
    #     {'_id': 'ObjectId("5c25e77bfd2c4f1de07b6c81")',
    #         'title': '這是啥呀', 'info': '1712B', 'age': 20}
    # )
    # 如ID不存在則插入新數(shù)據(jù)
    # result = col_name.save(
    #     {'_id': '1234567890',
    #      'title': '這是嘛呀', 'info': '1712B', 'age': 20}
    # )
    # print(result)

def find_data():
    # 查找所有
    # result = col_name.find({})
    # 根據(jù)條件查找所有
    # result = col_name.find({'name': '天真'})
    # print([i for i in result])
    # 查找一條
    # result = col_name.find_one({'name': '斯巴達(dá)克斯1'})
    # print(result)
    # limit : 限制查詢
    # skip ;跳過
    # sort: 排序  1: 升序
    result = col_name.find({}).skip(2).limit(3).sort('age',1)
    # 多個字段排序
    result = col_name.find({}).skip(2).limit(3).sort([('age',1),('year',1)])
    for i in result:
        print(i)

# 刪除
# def delete_data():
#     # 默認(rèn)multi為True表示刪除多條
#     # 刪除一條
#     result = col_name.remove({'title': '斯巴達(dá)克斯1'}, multi=False)
#     print(result)
#     # 刪除一條
#     result = col_name.delete_one({'title': '斯巴達(dá)克斯2'})
#     print(result)
#     # 刪除多條
#     result = col_name.delete_many({'title': '斯巴達(dá)克斯1'})
#     print(result.deleted_count())

if __name__ == '__main__':
    # insert_data()
    # delete_data()
    # update_data()
    find_data()
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容