python操作mongodb之五大量寫操作


import pymongo
#庫名
db = pymongo.MongoClient('192.168.30.252',27017).bulk_example
#test集合插入
db.test.insert_many([{'i':i} for i in xrange(10000)]).inserted_ids
db.test.count()
#有條理的大規模數據寫入
bulk = db.test.initialize_ordered_bulk_op()
# Remove all documents from the previous example.
bulk.find({}).remove()
bulk.insert({'_id': 1})
bulk.insert({'_id': 2})
bulk.insert({'_id': 3})
#更新
bulk.find({'_id': 1}).update({'$set': {'foo': 'bar'}})
#插入替換
bulk.find({'_id': 4}).upsert().update({'$inc': {'j': 1}})
#替換
bulk.find({'j': 1}).replace_one({'j': 2})
#execute是執行
result = bulk.execute()
pprint(result)

#存在異常 的處理
from  pymongo.errors import BulkWriteError
#緩存隊列
bulk=db.test.initialize_ordered_bulk_op()
#查找j=2 然后替換成j=5
bulk.find({'j': 2}).replace_one({'i': 5})
#插入id=4
bulk.insert({'_id':4})
bulk.find({'i':5}).remove_one()
try:
	bulk.execute()
except BulkWriteError as bwe:
	pprint(bwe.details)  

from  pymongo.errors import BulkWriteError
bulk = db.test.initialize_unordered_bulk_op()
bulk.insert({'_id': 1})
bulk.find({'_id': 2}).remove_one()
bulk.insert({'_id': 3})
bulk.find({'_id': 4}).replace_one({'i': 1})
try:
	bulk.execute()
except BulkWriteError as bwe:
	pprint(bwe.details) 


#初始化隊列
bulk = db.test.initialize_ordered_bulk_op()
bulk.insert({'a': 0})
bulk.insert({'a': 1})
bulk.insert({'a': 2})
bulk.insert({'a': 3})
try:
	bulk.execute({'wtimeout': 1})
except BulkWriteError as bwe:
	pprint(bwe.details)

  


免責聲明!

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



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