python操作mongodb之五大量写操作

Posted similarface

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)

  

以上是关于python操作mongodb之五大量写操作的主要内容,如果未能解决你的问题,请参考以下文章

使用YCSB测试MongoDB的微分片性能

使用YCSB测试MongoDB的微分片性能

mongodb2.2.0升级到3.4.10操作记录

python3操作MongoDB的crud以及聚合案例,代码可直接运行(python经典编程案例)

python3操作MongoDB的crud以及聚合案例,代码可直接运行(python经典编程案例)

MongoDB 分片的原理搭建应用