Python 使用pyMongo在mongo中获取replicationLag

Python 使用pyMongo在mongo中获取replicationLag,python,mongodb,python-2.7,pymongo,database-replication,Python,Mongodb,Python 2.7,Pymongo,Database Replication,我正在尝试使用pymongo从python中获取db.rs.PrintSlaverApplicationInfo,但没有得到任何正确的方法。 我尝试了以下方法,但没有任何帮助 >>>from pymongo import MongoClient >>>client = MongoClient() >>>db = client.test_database >>>db.rs.printSlaveReplicationInfo

我正在尝试使用pymongo从python中获取db.rs.PrintSlaverApplicationInfo,但没有得到任何正确的方法。 我尝试了以下方法,但没有任何帮助

>>>from pymongo import MongoClient
>>>client = MongoClient()
>>>db = client.test_database
>>>db.rs.printSlaveReplicationInfo                 
Collection(Database(MongoClient([u'10.0.0.19:10006', u'10.0.0.68:10002']), u'xyz'), u'rs.printSlaveReplicationInfo')
db.rs.printSlaveReplicationInfo()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib64/python2.7/site-packages/pymongo/collection.py", line 2413, in __call__
    self.__name.split(".")[-1])
TypeError: 'Collection' object is not callable. If you meant to call the 'printSlaveReplicationInfo' method on a 'Collection' object it is failing because no such method exists.
>>> db.rs                            
Collection(Database(MongoClient([u'10.0.0.19:10006', u'10.0.0.68:10002']), u'xyz'), u'rs')
>>来自pymongo导入MongoClient
>>>client=MongoClient()
>>>db=client.test\u数据库
>>>db.rs.PrintSlaver应用程序信息
集合(数据库(MongoClient([u'10.0.0.19:10006',u'10.0.0.68:10002'])、u'xyz')、u'rs.PrintSlaverApplicationInfo')
db.rs.PrintSlaverApplicationInfo()
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/usr/local/lib64/python2.7/site packages/pymongo/collection.py”,第2413行,在调用中__
self.\u name.split(“.”[-1])
TypeError:“集合”对象不可调用。如果要对“Collection”对象调用“PrintSlaverApplicationInfo”方法,则会失败,因为不存在此类方法。
>>>分贝卢比
集合(数据库(MongoClient([u'10.0.0.19:10006',u'10.0.0.68:10002'])、u'xyz')、u'rs'))
有人能帮忙吗?或者怎么做


提前谢谢。

我找到了答案。以下是完整的代码:

(注意:您需要具有管理员权限才能运行此命令。)

optime重新显示mongo节点拥有数据的日期

您可以在此处阅读更多信息:

uri = "mongodb://usernamen:password@host:port/admin"
conn = pymongo.MongoClient(uri)
db = conn['admin']
db_stats = db.command({'replSetGetStatus'  :1})


primary_optime = 0
secondary_optime = 0

for key in db_stats['members'] : 
    if key['stateStr'] == 'SECONDARY' :
        secondary_optime = key['optimeDate']
    if key['stateStr'] == 'PRIMARY' : 
        primary_optime =key['optimeDate']

print 'primary_optime : ' + str(primary_optime)
print 'secondary_optime : ' + str(secondary_optime)

seconds_lag = (primary_optime - secondary_optime ).total_seconds()
#total_seconds() userd to get the lag in seconds rather than datetime object
print 'secondary_lag : ' + str(seconds_lag)