Pymongo转换命令光标批量列出5000

时间:2018-06-25 11:13:59

标签: python mongodb pymongo

我正在尝试将大型记录集从mongodb加载到熊猫,并且要以5000个为一批。使用WHERE ( ( $__unixEpochTo(TimeInt) - $__unixEpochFrom(TimeInt) > 100 AND (id % 10) = 0 ) OR ( $__unixEpochTo(TimeInt) - $__unixEpochFrom(TimeInt) > 1000 AND (id % 1000 = 0 ) OR COALESCE($__unixEpochTo(TimeInt) - $__unixEpochFrom(TimeInt), 0) <= 100) ) AND 我可以获得前5000条记录,但是我不知道如何切换到下一个记录5000。

最终我要做的是

pymongo Command cursor

但是大量数据会冻结我的系统,所以我想分批处理

def load_data(command_cursor): 
   pd.DataFrame(list(command_cursor))

if num_records > 5000: df = json_normalize(list(records.batch_size(5000))) while records.alive: try: records.next() except: break df.append(json_normalize(list(records.batch_size(5000)))) else: df = json_normalize(list(records)) return df 属性始终为aliveFalse始终抛出next

0 个答案:

没有答案