无法使用pymongo从mongodb oplog打印时间戳
我有以下代码:无法使用pymongo从mongodb oplog打印时间戳,mongodb,pymongo,mongodb-oplog,Mongodb,Pymongo,Mongodb Oplog,我有以下代码: connection = MongoClient('core.mongo.com', 27017) db = connection['admin'] first = db.oplog.rs.find().sort('$natural', pymongo.DESCENDING).limit(-1).next() ts = first['ts'] while True: cursor = db.oplog.find({'ts': {'$gt': ts}}, tailabl
connection = MongoClient('core.mongo.com', 27017)
db = connection['admin']
first = db.oplog.rs.find().sort('$natural', pymongo.DESCENDING).limit(-1).next()
ts = first['ts']
while True:
cursor = db.oplog.find({'ts': {'$gt': ts}}, tailable=True, await_data=True)
while cursor.alive:
for doc in cursor:
ts = doc['ts']
time.sleep(1)
我得到:
Traceback (most recent call last):
File "tail.py", line 25, in <module>
ts = first['ts']
File "/Library/Python/2.7/site-packages/pymongo/cursor.py", line 569, in __getitem__
"instances" % index)
TypeError: index 'ts' cannot be applied to Cursor instances
回溯(最近一次呼叫最后一次):
文件“tail.py”,第25行,在
ts=第一个['ts']
文件“/Library/Python/2.7/site packages/pymongo/cursor.py”,第569行,在__
实例“%index”)
TypeError:索引“ts”无法应用于游标实例
如何从mongo数据库的
oplog
获取最新时间戳?以下代码给出了对数据库\u name.集合\u name的最后一次操作:
connection = MongoClient('core.mongo.com', 27017)
db = connection['admin']
oplog_str = str(connection.local.oplog.rs)
print oplog_str
new_query = {'ns': {'$in': ['database_name.collection_name']}}
curr = connection.local.oplog.rs.find(new_query).sort('$natural', pymongo.DESCENDING).limit(-1)
for doc_count, doc in enumerate(curr):
current_time_stamp = doc['ts'].time
good_date = datetime.datetime.fromtimestamp(current_time_stamp).ctime()
print doc_count, good_date
如果不考虑数据库和集合,只需从curr
中删除new\u query