操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    概述

    在爬蟲相關的項目中,有時需要爬取各種數據結構的數據,為了更方便的存儲,我們通常會使用 MongoDB 進行存儲。

    本文將使用 Python 連接 MongoDB ,對數據進行增刪改的操作實踐,讀者需要先對 Python 或 MongoDB 有一定的了解,能夠更快上手。

    環境準備

    系統:windows 10 x64

    Python:

    • 版本:3.7
    • 開發工具:Pycharm

    MongoDB:

    • 版本:4.x
    • 可視化工具:MongoDB Compass

    操作步驟

    啟動 Mongo Service

    首先在本地啟動 MongoDB 服務,并使用 MongoDB Compass 連接到數據庫服務:

    安裝工具包

    然后通過開發工具 Pycharm 上安裝工具庫 pymongo(pymongo是驅動程序,使python程序能夠使用MongoDB數據庫,用python編寫而成):

    編寫檢查連接

    新建一個 .py 文件,編寫 MongoDB 的連接程序,通過查詢校驗連接是否成功:

    # pymongo 庫中導入 MongoClient
    from pymongo import MongoClient
    
    # 連接 MongoDB 數據庫,通過 URL 的形式訪問
    client=MongoClient('mongodb://localhost:27017/')
    
    # 檢測客戶端連接,可以通過查詢文檔數據是否能正常查詢
    for i in client.newdb.lightmap.find({}):
        print(i)

    如果未報錯,成功打印輸出,則連接成功:

    {'_id': ObjectId('61bc3f6d9e58737faea3c5cc'), 'name': '故宮', 'city': '北京', 'country': '中國', 'gps': {'lat': 116.403, 'lng': 39.924}}
    {'_id': ObjectId('61bc3f6d9e58737faea3c5cd'), 'name': '長城', 'city': '北京', 'country': '中國', 'gps': {'lat': 106.384, 'lng': 39.031}}
    {'_id': ObjectId('61bc3f6d9e58737faea3c5ce'), 'name': '白宮', 'city': '華盛頓', 'country': '美國', 'gps': {'lat': 116.652, 'lng': 40.121}}
    {'_id': ObjectId('61bc3f6d9e58737faea3c5cf'), 'name': '倫敦之眼', 'city': '倫敦', 'country': '英國', 'gps': {'lat': 116.348, 'lng': 34.43}}

    編寫程序操作 MongoDB

    數據庫的操作

    # 新增或獲取數據庫,如果數據庫(new_db)不存在,系統自動創建數據庫(new_db)
    new_db_one=client.new_db_one
    
    # 查詢數據庫列表
    db_names=client.list_database_names()
    print(db_names)
    
    # 刪除現有數據庫
    client.drop_database('new_db_one')

    集合的操作

    # 集合的增加操作,如果 collection_name 集合不存在則創建,存在則直接插入數據
    client.new_db_one.collection_name.insert_one({'light': 'hs'})
    
    # 集合的查詢操作,查詢對應數據庫的集合名列表
    client.new_db_one.list_collection_names()
    
    # 集合的刪除操作
    client.new_db_one.collection_name.drop()

    文檔的操作

    # 文檔的新增操作,向集合 collection_name 中新增一個文檔
    client.new_db_one.collection_name.insert_one({'light': 'hs'})
    for i in client.new_db_one.collection_name.find({}):
        print(i)
    
    # 文檔的新增操作,向集合 collection_name 中新增一個文檔
    client.new_db_one.collection_name.replace_one({'light': 'hs'}, {'hs2': 'light2'})
    for i in client.new_db_one.collection_name.find({}):
        print(i)
    
    # 文檔的新增操作,向集合 collection_name 中新增一個文檔
    client.new_db_one.collection_name.find({'hs2': 'light2'})
    for i in client.new_db_one.collection_name.find({}):
        print(i)
    
    # 文檔的刪除操作,匹配的第一條數據進行刪除
    client.new_db_one.collection_name.delete_one({'hs2': 'light2'})
    for i in client.new_db_one.collection_name.find({}):
        print(i)

    總結

    本文通過使用 python 對 MongoDB 的數據庫、集合、文檔的操作實踐,方便讀者快速上手,趕快動手實踐起來吧。

    作為一個用著和領扣 LeetCode 同樣技術棧 —— Python 的程序員,對于平時一些小的想法和 Demo 自然是通過 Python 來解決,但是在學習和使用的過程中,對于數據的存儲一直難以統一,最初使用純文本文件存儲,發現對于格式化索引來說純文本存儲效率太低,之后又轉了 MySQL 存儲,但是發現過于復雜,對于一些熱更新數據來說寫起來十分不雅觀,限制太多,無奈便換成了 JSON 格式存儲,當然,那是在現在使用的 MongoDB 之前了。




    MongoDB 概要

    MongoDB 用起來其實比較隨意,相關命令遍寫的感覺和 Python 這類弱類型語言很相似,用起來比較 Geek。

    MongoDB 是一個面向文檔的數據庫,目前由 10gen 開發并維護,它的功能豐富,齊全,完全可以替代 MySQL。 MonogDB 的一些亮點:

    • 使用 JSON 風格 語法,易于掌握和理解:MongoDB 使用 JSON 的變種 BSON 作為內部存儲的格式和語法。針對 MongoDB 的操作都使用 JSON 風格語法,客戶端提交或接收的數據都使用 JSON 形式來展現。相對于 SQL來說,更加直觀,容易理解和掌握。
    • Schema-less,支持嵌入子文檔:MongoDB 是一個 Schema-free 的文檔數據庫。一個數據庫可以有多個Collection,每個 Collection 是Documents的集合。Collection 和 Document 和傳統數據庫的 Table 和 Row并不對等。無需事先定義 Collection,隨時可以創建。
    • Collection中可以包含具有不同 schema 的文檔記錄。 這意味著,你上一條記錄中的文檔有3個屬性,而下一條記錄的文檔可以有10個屬 性,屬性的類型既可以是基本的數據類型(如數字、字符串、日期等),也可以是數組或者散列,甚至還可以是一個子文檔(embed document)。這樣,可以實現逆規范化(denormalizing)的數據模型,提高查詢的速度。

    如果在本地測試或者僅僅是為了臨時丟一些數據進去的話,安裝并啟動 mongod 后直接在命令行下 mongo 即可完成連接,默認沒有連接密碼,如果看到類似如下提示的話,說明 MongoDB 已經安裝完成了:




    Python + MongoDB

    下面讓 Python 連接上 MongoDB:

    安裝 PyMongo:

    pip3 install pymongo

    在 Python 中引入:

    import pymongo

    指定數據表并連接:

    myclient=pymongo.MongoClient("mongodb://localhost:27017/") # 默認的 MongoDB 監聽地址
    db=myclient["leetcode"] # 使用上一步建立的 myclient 連接,并且使用 leetcode 數據庫
    table=db['articles'] # 使用 db 連接的 leetcode 數據庫中的 articles 表

    增刪改查:

    # 定義我們要插入的數據,JSON 格式,在 Python 中就是 Dict 格式
    post={"author": "Nova Kwok",
    "text": "LeetCode is in China!",
    "tags": ["mongodb", "python", "pymongo"],
    "date": datetime.datetime.utcnow()}

    插入一條記錄:

    # 插入一條記錄并返回插入 ID
    post_id=posts.insert_one(post).inserted_id

    查詢記錄,這里我們需要多 import 一個包,pprint:

    import pprint
    pprint.pprint(posts.find_one())

    返回結果:

    {u'_id': ObjectId('...'),
    u'author': u'Nova Kwok',
    u'date': datetime.datetime(...),
    u'tags': [u'mongodb', u'python', u'pymongo'],
    u'text': u'LeetCode is now in China!'}
網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有