Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用pymongo从mongodb oplog打印时间戳_Mongodb_Pymongo_Mongodb Oplog - Fatal编程技术网

无法使用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