gpt4 book ai didi

python - mongodb批量插入、更新值

转载 作者:太空宇宙 更新时间:2023-11-03 20:21:28 25 4
gpt4 key购买 nike

我每天运行批量插入 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()

现在,每次查询运行时它都会重新插入所有值。有没有办法只添加尚未添加的值。

最佳答案

我显然不完全了解你的数据结构,也不完全清楚你想要做什么,但我认为这应该可以。

query = bigQuery.get_data(query)

new_things = []
for i, row in enumerate(query):
if not col.find_one(your_query): # make sure that the document does not exist already
# add data to an array
new_things.append({
'date': str(row['day_dt']),
'dt': datetime.strptime(str(row['day_dt']), '%Y-%m-%d'),
'site': row['site_nm'],
'val_counts': row[8]
})

# use insert_many to insert all the documents
bulk_result = col.insert_many(newthings)

检查代码旁边的注释以获取解释。如果您是您提到的菜鸟,我会坚持使用更简单的做事方式,并随着您经验的增长而扩展您的代码。

关于python - mongodb批量插入、更新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58139003/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com