MongoDB的安裝配置以及使用Python進(jìn)行操作

首先在下載頁(yè)面下載對(duì)應(yīng)版本的MongoDB,下面以windows平臺(tái)為例。

設(shè)置MongoDB服務(wù)

1.將MongoDB安裝在F:/mongodb,然后創(chuàng)建數(shù)據(jù)存放位置F:/mongodb/data/db
2.F:/mongodb/data/下新建一個(gè)log文件夾,在該文件夾下創(chuàng)建mongodb.log文件
3.F:/mongodb下新建mongo.config,并添加以下內(nèi)容:

dbpath=F:\mongodb\data\db
logpath=F:\mongodb\data\log\mongodb.log

4.以管理員身份打開cmd,并進(jìn)入F:/mongodb/bin,輸入以下命令:

mongod --config F:\mongodb\mongo.config --install --serviceName "MongoDB" --journal 

5.執(zhí)行net start mongoDB命令即可開啟服務(wù)
6.為了方便,在系統(tǒng)變量的Path中添加MongoDB bin文件所在目錄F:/mongodb/bin,然后使用mongo命令進(jìn)入數(shù)據(jù)庫(kù)

使用Python操作MongoDB數(shù)據(jù)庫(kù)

首先安裝相應(yīng)模塊。

pip install pymongo

下面以一個(gè)小demo介紹基本操作。

# -*- coding: utf-8 -*-
from pymongo import MongoClient
from datetime import datetime
from bson.objectid import ObjectId


class Test:
    def __init__(self):
        """
        連接MongoClient
        由3種方法可以選擇,看使用情況
        """
        # 簡(jiǎn)寫
        self.client = MongoClient()
        # 指定端口和地址
        # self.client = MongoClient('127.0.0.1', 27017)
        # 使用URI
        # self.client = MongoClient('mongodb://127.0.0.1:27017/')

        # 選擇數(shù)據(jù)庫(kù)
        self.db = self.client['test']

    def add_one(self, title, number, created_time=datetime.now()):
        """
        添加一條數(shù)據(jù)
        需要注意的是Mongo中不需要事先建立表,插入數(shù)據(jù)的同時(shí)直接根據(jù)所傳入字典對(duì)象的內(nèi)容生成表
        """
        # 創(chuàng)建一個(gè)字典對(duì)象
        post = {
            'title': title,
            'number': number,
            'created_time': created_time
        }
        # 指定將數(shù)據(jù)添加到blog下的post表
        return self.db.blog.post.insert_one(post)

    def find_by_id(self, post_id):
        """
        通過ID查找數(shù)據(jù)
        Mongo中自動(dòng)生成的ID主鍵是ObjectId(id)的形式,所以在查詢的時(shí)候要遵循該格式
        從bson.objectid導(dǎo)入ObjectId
        """
        return self.db.blog.post.find_one({'_id': ObjectId(post_id)})

    def update_number(self, post_id, number):
        """
        更新一條數(shù)據(jù)
        在update_one函數(shù)中,通過第一個(gè)參數(shù)查找更新對(duì)象,通過第二個(gè)參數(shù)對(duì)查找到的對(duì)象進(jìn)行更新
        下面語句的含義是對(duì)指定ID的數(shù)據(jù)的number字段加上一個(gè)number值,通過 $inc 實(shí)現(xiàn)
        """
        return self.db.blog.post.update_one({'_id': ObjectId(post_id)}, {'$inc': {'number': number}})

    def update_all_number(self, number):
        """
        批量更新
        update_many函數(shù)參數(shù)的作用同update_one
        {} 表示沒有查找限制,更新全部的數(shù)據(jù)
        """
        return self.db.blog.post.update_many({}, {'$inc': {'number': number}})

    def delete_by_id(self, post_id):
        """
        根據(jù)ID刪除,同樣注意id值的格式
        """
        return self.db.blog.post.delete_one({'_id': ObjectId(post_id)})

MongoDB可視化工具

Robo 3T

在Tree Mode下查看數(shù)據(jù)

image.png

在Table Mode下查看數(shù)據(jù)
image.png

在Text Mode下查看數(shù)據(jù)
image.png

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

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

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