pymongo模块链接mongo
1.链接单实例mongo

# -*- coding:utf-8 -*-

import datetime

import pymongo

import time


client = pymongo.MongoClient("127.0.0.1", 27017)

db = client.get_database("collection")

db.authenticate('collection', '78hRdJEnJcHRb4qA')

#print(db.collection_names())

redefine_collection = db.get_collection('redefine-collection')

alluser=[]

demos = redefine_collection.find({'event_id': '0109001','event_info.url':{'$exists':'true'} ,"ctime": {"$gte":1525881600000}},no_cursor_timeout=True)

for item in demos:

if len(item['event_info']['url'].replace(r'/','').split('.')[-1])<=5:

alluser.append(item['event_info']['url'].replace(r'/','').split('.')[-1])

demos.close()

print len(alluser)




2.连接复制集

from pymongo import MongoClient

conn = MongoClient(['192.168.3.11:27017', '192.168.3.12:27017', '192.168.3.13:27017'],replicaset='shard1')

from pymongo import ReadPreference

db = conn.get_database('hnrtest', read_preference=ReadPreference.SECONDARY_PREFERRED)


3.mongo常见操作

######readclient#client=pymongo.MongoReplicaSetClient(['172.31.46.25:27017,172.31.43.36:27017,172.31.40.242:27017'],replicaset='shard1')#db=client.get_database("collection")#db.authenticate('collection','78hRdJEnJcHRb4qA')##printdb.client.read_preference#printdb.client.primary#printdb.client.secondaries#printdb.client.arbiters#printdb.command('ismaster')#####readclientclient=pymongo.MongoClient(['172.31.32.223:20000'])db=client.get_database("admin")db.authenticate('admin','ggxP6tPI971K3W0r')#printdb.client.read_preference#printdb.client.primary#printdb.client.secondaries#printdb.client.arbiters#printdb.client.is_primary#printdb.command('ismaster')#printdb.command('currentOp')#printdb.command('replSetGetStatus')#printdb.list_collection_names()statement=client.collection.get_collection('statement')###获取对应db下的对应集合printstatement.count()#client.collection.add_user('newTestUser','Test123',roles=[{'role':'readWrite','db':'collection'}])####添加用户#client.collection.remove_user('newTestUser')####删除用户db2=client.get_database("collection")db2.add_user('newTestUser','Test123',roles=[{'role':'readWrite','db':'collection'}])###添加用户printdb.current_op()#options={'lock':True}#db.client.fsync(**options)#printdb.client.is_locked######printdb.command('fsyncUnlock')#printdb.client.is_locked

参考:http://blog.51cto.com/hnr520/1874506