Python操作MongoDb數據庫


1.簡介

MongoDB是一個基於分布式文件存儲的文檔數據庫,可以說是非關系型(NoSQL,Not Only SQL)數據庫中比較像關系型數據庫的一個,具有免費、操作簡單、面向文檔、自動分片、可擴展性強、查詢功能強大等特點,對大數據處理支持較好,旨在為WEB應用提供可擴展的高性能數據存儲解決方案。

MongoDB將數據存儲為一個文檔,數據結構由鍵值(key=>value)對組成。MongoDB文檔類似於JSON對象。字段值可以包含其他文檔,數組及文檔數組。

2.應用

MongoDB數據庫可以到網站https://www.mongodb.org/downloads下載,安裝之后打開命令提示符環境並切換到MongoDB安裝目錄中的server\3.2\bin文件夾,然后執行命令mongod --dbpath D:\data --journal -- storageEngine=mmapv1啟動MongoDB,當然需要首先在D盤根目錄下新建文件夾data。

讓剛才那個命令提示符環境始終處於運行狀態,然后再打開一個命令提示符環境,執行mongo命令連接MongoDB數據庫,如果連接成功的話,會顯示一個>符號作為提示符,之后就可以輸入MongoDB命令了。

打開或創建數據庫students

>use students

在數據庫中插入數據

>zhangsan = {‘name’: ‘Zhangsan’, ‘age’: 18, ‘gender’: ‘male’}

>db.students.insert(zhangsan)

>lisi = {‘name’: ‘Lisi’, ‘age’: 19, ‘gender’: ‘male’}

>db.students.insert(lisi)

查詢數據庫中的記錄

>db.students.insert(lisi)

查詢數據庫中的記錄

>db.students.find()

查看系統中所有數據庫名稱

>show dbs

3.pymongo模塊

#! /usr/bin/env python3
# -*- coding:utf-8 -*-

# Author   : MaYi
# Blog     : http://www.cnblogs.com/mayi0312/
# Date     : 2019-12-25
# Name     : test01
# Software : PyCharm
# Note     : 應用pymongo模塊操作MongoDB數據庫
# 導入模塊
import pymongo

# 連接數據庫,27017是默認端口
client = pymongo.MongoClient("localhost", 27017)
# 獲取數據庫
db = client.students

# 打印數據集合名稱列表
print(db.collection_names)

# 獲取數據集合
res = db.students.find()
print(res)
for item in res:
    # 遍歷數據
    print(item)

wangwu = {"name": "Wangwu", "age": 20, "sex": "male"}
# 插入一條記錄
db.students.insert(wangwu)

for item in db.students.find({"name": "Wangwu"}):
    # 指定查詢條件
    print(item)

# 獲取一條記錄
print(db.students.find_one())
print(db.students.find_one({"name": "Wangwu"}))

# 記錄總數
print(db.students.find().count())

# 刪除一條記錄
db.students.remove({"name": "Wangwu"})

# 創建索引
db.students.create_index([("name", pymongo.ASCENDING)])

# 更新數據庫
db.students.update({"name": "Zhangsan"}, {"$set": {"age": 25}})

# 清空數據庫
db.students.remove()

# 插入多條數據
zhangsan = {"name": "Zhangsan", "age": 20, "gender": "male"}
lisi = {"name": "Lisi", "age": 21, "gender": "male"}
wangwu = {"name": "Wangwu", "age": 22, "gender": "female"}
db.students.insert_many([zhangsan, lisi, wangwu])

# 對查詢結果排序
for item in db.students.find().sort("name", pymongo.ASCENDING):
    print(item)


# 入口函數
if __name__ == '__main__':
    pass

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM