溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python操作MongoDb數(shù)據(jù)庫流程詳解

發(fā)布時(shí)間:2020-08-23 16:26:15 來源:腳本之家 閱讀:144 作者:騎著螞蟻流浪 欄目:開發(fā)技術(shù)

1.簡(jiǎn)介

MongoDB是一個(gè)基于分布式文件存儲(chǔ)的文檔數(shù)據(jù)庫,可以說是非關(guān)系型(NoSQL,Not Only SQL)數(shù)據(jù)庫中比較像關(guān)系型數(shù)據(jù)庫的一個(gè),具有免費(fèi)、操作簡(jiǎn)單、面向文檔、自動(dòng)分片、可擴(kuò)展性強(qiáng)、查詢功能強(qiáng)大等特點(diǎn),對(duì)大數(shù)據(jù)處理支持較好,旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案。

MongoDB將數(shù)據(jù)存儲(chǔ)為一個(gè)文檔,數(shù)據(jù)結(jié)構(gòu)由鍵值(key=>value)對(duì)組成。MongoDB文檔類似于JSON對(duì)象。字段值可以包含其他文檔,數(shù)組及文檔數(shù)組。

2.應(yīng)用

MongoDB數(shù)據(jù)庫可以到網(wǎng)站https://www.mongodb.org/downloads下載,安裝之后打開命令提示符環(huán)境并切換到MongoDB安裝目錄中的server\3.2\bin文件夾,然后執(zhí)行命令mongod --dbpath D:\data --journal -- storageEngine=mmapv1啟動(dòng)MongoDB,當(dāng)然需要首先在D盤根目錄下新建文件夾data。

讓剛才那個(gè)命令提示符環(huán)境始終處于運(yùn)行狀態(tài),然后再打開一個(gè)命令提示符環(huán)境,執(zhí)行mongo命令連接MongoDB數(shù)據(jù)庫,如果連接成功的話,會(huì)顯示一個(gè)>符號(hào)作為提示符,之后就可以輸入MongoDB命令了。

打開或創(chuàng)建數(shù)據(jù)庫students

>use students

在數(shù)據(jù)庫中插入數(shù)據(jù)

>zhangsan = {‘name': ‘Zhangsan', ‘a(chǎn)ge': 18, ‘gender': ‘male'}
>db.students.insert(zhangsan)
>lisi = {‘name': ‘Lisi', ‘a(chǎn)ge': 19, ‘gender': ‘male'}
>db.students.insert(lisi)

查詢數(shù)據(jù)庫中的記錄

>db.students.insert(lisi)

查詢數(shù)據(jù)庫中的記錄

>db.students.find()

查看系統(tǒng)中所有數(shù)據(jù)庫名稱

>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  : 應(yīng)用pymongo模塊操作MongoDB數(shù)據(jù)庫
# 導(dǎo)入模塊
import pymongo

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

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

# 獲取數(shù)據(jù)集合
res = db.students.find()
print(res)
for item in res:
 # 遍歷數(shù)據(jù)
 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"}))

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

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

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

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

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

# 插入多條數(shù)據(jù)
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])

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

# 入口函數(shù)
if __name__ == '__main__':
 pass

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI