使用簡單的Python連線訪問MongoDB
繼續來聊MongoDB。
MongoDB作為了一個資料庫產品軟體,除了伺服器Server端程式(mongod)外,還提供了比較豐富的訪問連線介面。我們最常用的就是兩個型別,一個是原生mongo shell,另一個就是應用程式語言訪問介面。
1、從Mongo Shell到應用程式訪問介面
Mongo Shell是MongoDB官方提供的資料庫訪問介面程式,類似於Oracle的sqlplus和Mysql的mysql程式。應該說,Mongo shell對於MongoDB的連線、訪問和功能操作是最好的。所有與MongoDB相關的管理、開發和資料訪問職能,都可以透過Mongo Shell進行實現。
另一類就是應用程式訪問介面,也可以理解為程式語言介面。同其他所有資料庫相同,針對每個開發語言,MongoDB都有專門的訪問驅動Driver程式(或者稱為Module)進行支援。但是,由於不同語言在語法、語義和程式組織方式上的差異,使用程式訪問介面的時候,和標準Mongo Shell是有一些差別。這就是為什麼在MongoDB官方文件中,對於每個操作都提供多種程式語言版本的原因。
目前,MongoDB提供的語言驅動,包括Mongo Shell(原生也需要支援包)、Python、Java、Node.js、PHP、C#、Perl、Ruby和Scala。本篇主要介紹Python的訪問方式,記錄下來,留待需要的朋友待查。
2、Python驅動安裝
Python是目前比較流行的程式設計語言,特別是在人工智慧AI和大資料分析處理上,市場空間是比較大的。MongoDB是比較流行的NOSQL資料庫解決方案,兩者結合的場景非常多。
對於Python而言,組織程式是以Module的方式進行。要在本地進行開發,需要本地在Python標準庫基礎上,新增對於MongoDB的支援。目前,比較常用的Mongodb包為pymongo。
如果是Windows環境下,如果已經安裝好Python開發環境JDK,只需要呼叫esay_install程式就可以自動完成下載。
C:\Users\admin>easy_install pymongo
Searching for pymongo
Reading
Best match: pymongo 3.4.0
Downloading
4fcfc5960f7c220e8ad0370197fe87a/pymongo-3.4.0-py3.5-win-amd64.egg#md5=0fa1f3d995
42f032fc8940d8d53d7559
Processing pymongo-3.4.0-py3.5-win-amd64.egg
creating c:\program files\python35\lib\site-packages\pymongo-3.4.0-py3.5-win-amd
64.egg
Extracting pymongo-3.4.0-py3.5-win-amd64.egg to c:\program files\python35\lib\si
te-packages
Adding pymongo 3.4.0 to easy-install.pth file
Installed c:\program files\python35\lib\site-packages\pymongo-3.4.0-py3.5-win-am
d64.egg
Processing dependencies for pymongo
Finished processing dependencies for pymongo
在國內下載時間可能比較長,而且經常會有Timeout的情況出現。多測試幾次,或者直接到Python官網上下載安裝包就能解決。下載之後的pymongo包,被自動放在標準Python庫裡面。注意:這個時候即使是使用Eclipse外掛進行開發,也會自動的感應到最新的庫變化,即時生效。
3、簡單開發例項
下面進行一個簡單地例項。當前目標資料庫test上,包括pyinsert這個集合collection。
> show collections
blog
pyinsert
xl
> db.pyinsert.find().count();
0
下面是插入的python記錄指令碼
from pymongo import MongoClient –匯入包模組
from bson.objectid import ObjectId
connect = MongoClient('172.16.19.143',27017)
db = connect.test –對應資料庫
operList = [{"name":"Ttest", "age":10},{"name":"Mark", "age":12},
{"name":"Lucy", "age":10},{"name":"Tom", "age":32}]
res = db.pyinsert.insert_many(operList) --批次插入
print(res)
注意:每個語言落實MongoDB語法的時候,有一些差別,具體需要參考官方解釋。上面的例項中,介紹了連線語句、組織Document Array和批次插入。插入後,結果如下:
> db.pyinsert.find();
{ "_id" : ObjectId("5972d32dc3e2cc1d108511b7"), "age" : 10, "name" : "Ttest" }
{ "_id" : ObjectId("5972d32dc3e2cc1d108511b8"), "age" : 12, "name" : "Mark" }
{ "_id" : ObjectId("5972d32dc3e2cc1d108511b9"), "age" : 10, "name" : "Lucy" }
{ "_id" : ObjectId("5972d32dc3e2cc1d108511ba"), "age" : 32, "name" : "Tom" }
檢索資料指令碼:
from pymongo import MongoClient
from bson.objectid import ObjectId
connect = MongoClient('172.16.19.143',27017)
db = connect.test
for data in db.pyinsert.find():
print(data)
操作結果:
{'_id': ObjectId('5972d32dc3e2cc1d108511b7'), 'name': 'Ttest', 'age': 10}
{'_id': ObjectId('5972d32dc3e2cc1d108511b8'), 'name': 'Mark', 'age': 12}
{'_id': ObjectId('5972d32dc3e2cc1d108511b9'), 'name': 'Lucy', 'age': 10}
{'_id': ObjectId('5972d32dc3e2cc1d108511ba'), 'name': 'Tom', 'age': 32}
4、結論
本篇針對python語言使用MongoDB的介面,進行了簡單介紹。更多的語法和使用,建議參考MongoDB官方文件。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17203031/viewspace-2142425/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python連線訪問mongodb副本集PythonMongoDB
- MongoDB最簡單的入門教程之二 使用nodejs訪問MongoDBMongoDBNodeJS
- MongoDB最簡單的入門教程之五-通過Restful API訪問MongoDBMongoDBRESTAPI
- spring 簡單的使用 Hikari連線池 和 jdbc連線mysql 的一個簡單例子SpringJDBCMySql單例
- 簡單的mongodb的學習使用,勿噴,有問題點出MongoDB
- Mongodb訪問控制MongoDB
- .Net Core中簡單使用MongoDBMongoDB
- 簡單的php連線mysql類PHPMySql
- 簡單介紹python連線telnet和ssh的兩種方式Python
- 【Github】 Github訪問不是私密連線問題Github
- MongoDB Python官方驅動 PyMongo 的簡單封裝MongoDBPython封裝
- MongoDB 訪問超時MongoDB
- mongodb連線字串MongoDB字串
- php連線mongodbPHPMongoDB
- 關於在執行java連線MongoDB時遇到的連線超時問題JavaMongoDB
- 2 個簡單的 python 指令碼,連線 MySQL 和讀取 ExcelPython指令碼MySqlExcel
- Python訪問小程式簡單方法程式碼例項詳解Python
- Python使用SQLAlchemy訪問MemFireDBPythonSQL
- MongoDB索引的簡單理解MongoDB索引
- MongoDB 簡單上手MongoDB
- PHP-fpm MongoDB 連線數爆了問題PHPMongoDB
- BIRT 如何連線 MongoDBMongoDB
- 使用 Charles 簡單解決微信開發者工具網路連線失敗的問題
- 簡單談談服務間的連線
- socketserver實現多使用者連線簡單程式碼Server
- python - Counter簡單使用Python
- Python Tkinter 簡單使用Python
- python 連線mongodb實現增刪改查例項PythonMongoDB
- 線性表中的單向連結串列的簡單操作
- 在Ubuntu 19.10中使用mongoose來連線mongoDBUbuntuMongoDB
- node.js連線mongodbNode.jsMongoDB
- Mongodb資料庫連線MongoDB資料庫
- 超簡單的Xshell連線手機終端
- 資料庫表連線的簡單解釋資料庫
- Python使用 Kubernetes API 訪問叢集PythonAPI
- mongodb和hbase的簡單比較MongoDB
- 使用 @NoRepositoryBean 簡化資料庫訪問Bean資料庫
- 使用Python連線資料庫Python資料庫
- Java的簡單理解(25)---(隨機訪問檔案)RandomAccessFileJava隨機randomMac