久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Python調用MongoDB的方法

161次閱讀
沒有評論

共計 2282 個字符,預計需要花費 6 分鐘才能閱讀完成。

自動寫代碼機器人,免費開通

這篇文章將為大家詳細講解有關 Python 調用 MongoDB 的方法,丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

使用 pymongo 對 MongoDB 進行的各種操作,下載相應平臺的版本,解壓即可。為方便使用,將 bin 路徑添加到系統 path 環境變量里。其中 mongod 是服務器,mongo 是客戶 shell,然后創建數據文件目錄:在 c 盤下創建 data 文件夾,里面創建 db 文件夾。

Python 怎么調用 MongoDB

安裝對應語言的 Driver,Python 安裝 pymongo

$easy_installpymongo

使用方法總結,摘自官方教程

創建連接

importpymongo
 connection=pymongo.Connection(localhost ,27017)

切換數據庫

db=connection.test_database

獲取 collection

collection=db.test_collection

db 和 collection 都是延時創建的,在添加 Document 時才真正創建

文檔添加,_id 自動創建

importdatetime
 post={ author : Mike ,
 ... text : Myfirstblogpost! ,
 ... tags :[mongodb , python , pymongo],
 ... date :datetime.datetime.utcnow()}
 posts=db.posts
 posts.insert(post)
 ObjectId(...)

批量插入

new_posts=[{ author : Mike ,
 ... text : Anotherpost! ,
 ... tags :[bulk , insert],
 ... date :datetime.datetime(2009,11,12,11,14)},
 ...{ author : Eliot ,
 ... title : MongoDBisfun ,
 ... text : andprettyeasytoo! ,
 ... date :datetime.datetime(2009,11,10,10,45)}]
 posts.insert(new_posts)
 [ObjectId( ...),ObjectId(...)]

獲取所有 collection(相當于 SQL 的 showtables)

db.collection_names()
 [u posts ,u system.indexes]

獲取單個文檔

posts.find_one()
 {u date :datetime.datetime(...),u text :u Myfirstblogpost! ,u _id :ObjectId(...),u author :u Mike ,u tags :[u mongodb ,u python ,u pymongo]}

查詢多個文檔

forpostinposts.find():
 ...post
 {u date :datetime.datetime(...),u text :u Myfirstblogpost! ,u _id :ObjectId(...),u author :u Mike ,u tags :[u mongodb ,u python ,u pymongo]}
 {u date :datetime.datetime(2009,11,12,11,14),u text :u Anotherpost! ,u _id :ObjectId(...),u author :u Mike ,u tags :[u bulk ,u insert]}
 {u date :datetime.datetime(2009,11,10,10,45),u text :u andprettyeasytoo! ,u _id :ObjectId(...),u author :u Eliot ,u title :u MongoDBisfun }

加條件的查詢

posts.find_one({author : Mike})

高級查詢

posts.find({date :{ $lt :d}}).sort(author)

統計數量

posts.count()
 3

加索引

frompymongoimportASCENDING,DESCENDING
 posts.create_index([(date ,DESCENDING),(author ,ASCENDING)])
 u date_-1_author_1

查看查詢語句的性能

posts.find({date :{ $lt :d}}).sort(author).explain()[ cursor]
 u BtreeCursordate_-1_author_1 
posts.find({date :{ $lt :d}}).sort(author).explain()[ nscanned]
 2

附自己總結的一點小心得,僅供參考

缺點

不是全盤取代傳統數據庫 (NoSQLFan:是否能取代需要看應用場景)

不支持復雜事務 (NoSQLFan:MongoDB 只支持對單個文檔的原子操作)

文檔中的整個樹,不易搜索,4MB 限制?(NoSQLFan:1.8 版本已經修改為 16M)

特點 (NoSQLFan:作者在這里列舉的很多只是一些表層的特點):

文檔型數據庫,表結構可以內嵌

沒有模式,避免空字段開銷 (SchemaFree)

分布式支持

查詢支持正則

動態擴展架構

32 位的版本最多只能存儲 2.5GB 的數據 (NoSQLFan:最大文件尺寸為 2G,生產環境推薦 64 位)

關于“Python 調用 MongoDB 的方法”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向 AI 問一下細節

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-04發表,共計2282字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 湘西| 珲春市| 海伦市| 新乡县| 司法| 湖州市| 瓦房店市| 乐亭县| 黄陵县| 会东县| 郯城县| 江北区| 东乡县| 桃园县| 宜春市| 满洲里市| 屯昌县| 浦城县| 乡城县| 财经| 甘肃省| 方山县| 高淳县| 齐齐哈尔市| 满城县| 忻州市| 安徽省| 修水县| 克什克腾旗| 浦城县| 侯马市| 时尚| 武山县| 兴仁县| 北海市| 固始县| 包头市| 黔西县| 大洼县| 信宜市| 通城县|