Pymongo庫簡單應用(Python的mongodb庫)__Python

來源:互聯網
上載者:User
Pymongo庫簡單應用

Pymongo庫是Python操作mongodb的庫。下面簡單介紹Pymongo的簡單使用。 建立mongo用戶端選擇資料庫和集合并插入資料

import pymongoclient = pymongo.MongoClient(host,port)#client = pymongo.MongoClient('mongodb://localhost:27017/')db = client.db #選擇名稱叫db的資料庫,沒有會建立#或者db = client['db']collection = db.test #選擇test名的collection,沒有會建立#或者collection = db['test']#collection 可以對集合進行操作collection.insert({'name':'aaa'}} #返回插入idcollection.insert([{'name':'aaa'},{'name':'bbb'}])#返回插入id的liste = collection.insert_one({'name':'ccc'})#返回結果通過e.inserted_id查看插入idobj =  {'a':'b'}collection.insert_one(obj)#插入成功後obj會多一個屬性_idprint(obj) #{'_id': ObjectId('58cf7eaac43b3761209924be'), 'a': 'b'}#insert也會產生相同的效果,會把插入的元素多添加一個_id屬性來表示插入資料庫後的id
串連帶認證的mongo

上述串連可以串連不設定密碼的mongo,但是mongo帶密碼就需要其他的串連方式了。

#SCRAM-SHA-1方式uri = "mongodb://user:password@example.com/the_database?authMechanism=SCRAM-SHA-1"client = MongoClient(uri)#或者client = MongoClient('example.com')client.the_database.authenticate('user', 'password', mechanism='SCRAM-SHA-1')#MONGODB-CR 方式from pymongo import MongoClienturi = "mongodb://user:password@example.com/the_database?authMechanism=MONGODB-CR"client = MongoClient(uri)#或者client = MongoClient('example.com')client.the_database.authenticate('user', 'password', mechanism='MONGODB-CR')#或者使用預設加密方式uri = "mongodb://user:password@example.com/the_database"client = MongoClient(uri)
查詢資料
a = collection.find({'name':'aaa'}) #返回遊標,可以for迭代或者a.next()擷取a = collection.find_one({'name':'aaa'})#返回結果'''{'_id':ObjectId('58b92cdfc43b3735664597be'), 'name':'aaa'}'''#如果id是字串類型的from bson.objectid import ObjectId #匯入ObjectId把字串id轉換成ObjectId才能尋找collection.find_one({'_id':ObjectId('58b93904c43b3735664597c2')})#直接使用字串id是無法查詢到內容的#查看資料條數collection.count()#或者 collection.find().count()collection.find({"name": "aaa"}).count()#條件查詢和排序d = datetime.datetime(2009, 11, 12, 12)collection.find({"date": {"$lt": d}}).sort("author")#限制查詢條數和指定位置開始查詢collection.find({"date": {"$lt": d}}).skip(1)#跳過合格前一條,返回後面的collection.find(...).limit(5)#查詢5條結果collection.find(...).skip(5).limit(5)#跳過前5條返回後面的5條#排序collection.find(...).sort('username',pymongo.DESCENDING)#使用username排序DESCENDING為倒序,ASCENDING正序,(ASCENDING=1,DESCENDING=-1)#多條件排序collection.find(...).sort(('username',pymongo.DESCENDING),('id',pymongo.ASCENDING))
更新
import pymongoclient = pymongo.MongClient('127.0.0.1')db = client.testcollection = db.usercollection.update({'a':'b'}, {'$set':{'a':'b'}});#update(條件,{'$set':更新值})
刪除
result = collection.delete_many({'a':'b'})#delete_many(條件)result.delete_count  #刪除個數result = collection.delete_one({'a':'b'})#delete_one(條件)result.delete_count  #刪除個數
建立索引

建立索引可以加快查詢

collection.create_index([('user_id',pymongo.ASCENDING),] ,unique=True)#建立一個唯一的不可重複的索引user_id,一次可以建立多個索引

參考官方文檔
http://api.mongodb.com/python/current/tutorial.html

註:
使用ORM訪問mongo使用mongoengine包
文檔 http://docs.mongoengine.org

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.