【发布时间】:2019-09-27 17:22:14
【问题描述】:
我每天都运行批量插入 cron 作业。但是有些值会丢失,当我重新运行数据时,这些值会添加到现有数据中,而不是更新。有没有办法只插入尚未插入的文档。
我的代码:
query = bigQuery.get_data(query)
bulk = col.initialize_unordered_bulk_op()
for i, row in enumerate(query):
bulk.insert({
'date': str(row['day_dt']),
'dt': datetime.strptime(str(row['day_dt']), '%Y-%m-%d'),
'site': row['site_nm'],
'val_counts': row[8]
})
bulk_result = bulk.execute()
现在,它会在每次查询运行时重新插入所有值。有没有办法只添加尚未添加的值。
【问题讨论】:
-
你应该先检查记录是否存在,如果不存在,插入它。
-
@securisec,我对此很陌生。我该怎么做?
-
您可以使用findOne。所以
col.find_one(query)其中query是您对数据的了解,和/或ObjectID
标签: python mongodb bulkinsert bulkupdate bulk-operations