pymongo 客户端连接说明
- 连接副本集
>>> import pymongo
>>> url = r'mongodb://admin:password@mongodb-1,mongodb-2/?replicaSet=rs1&readPreference=secondaryPreferred'
>>> conn = pymongo.MongoClient(url)
>>> db = conn['test']
>>> co = db['coll']
>>> print(co)
Collection(Database(MongoClient(host=['mongodb-1:27017', 'mongodb-2:27017'], document_class=dict, tz_aware=False, connect=True, replicaset='rs1', readpreference='secondaryPreferred'), 'test'), 'coll')
>>> co.insert_one({"id":2})
<pymongo.results.InsertOneResult object at 0x7fe07f5f5d48>
>>> print(co.find_one({"id":2}))
{'_id': ObjectId('614eb40ddaf027e45b5d91a5'), 'id': 2}
readPreference参数值说明:
primary:默认参数,只从主节点上进行读取操作。
primaryPreferred:大部分从主节点上读取数据,只有主节点不可用时从secondary节点读取数据。
secondary:只从secondary节点上进行读取操作,存在的问题是secondary节点的数据会比primary节点数据“旧”。
secondaryPreferred:优先从secondary节点进行读取操作,secondary节点不可用时从主节点读取数据。
nearest:不管是主节点、secondary节点,从网络延迟最低的节点上读取数据。
- 连接单实例
pymongo.MongoClient("mongodb://admin:password@mongodb-1:27017/admin")