批量更新不工作pymongo
Bulk upsert not working pymongo
我正在尝试更新文档(如果它存在)并插入(如果它不存在于集合中)。我将 pandas 数据框记录作为文档插入到基于 _id 的集合中。新文档的插入工作正常,但旧文档中的字段更新不工作。
bulk = pymongo.bulk.BulkOperationBuilder(pros_rides,ordered=False)
for doc in bookings_df:
bulk.find({ "_id": doc["_id"] }).upsert().update({
"$setOnInsert": doc
})
response = bulk.execute()
我错过了什么?
upsert 可以更新或插入文档; “$setOnInsert”操作仅在插入文档时执行,不在更新时执行。为了更新文档(如果存在),您必须提供一些将在更新文档时执行的操作。
试试这样的方法:
bulk = pros_rides.initialize_unordered_bulk_op()
for doc in books_df:
bulk.find({'_id': doc['_id']}).upsert().replace_one(doc)
bulk.execute()
我正在尝试更新文档(如果它存在)并插入(如果它不存在于集合中)。我将 pandas 数据框记录作为文档插入到基于 _id 的集合中。新文档的插入工作正常,但旧文档中的字段更新不工作。
bulk = pymongo.bulk.BulkOperationBuilder(pros_rides,ordered=False)
for doc in bookings_df:
bulk.find({ "_id": doc["_id"] }).upsert().update({
"$setOnInsert": doc
})
response = bulk.execute()
我错过了什么?
upsert 可以更新或插入文档; “$setOnInsert”操作仅在插入文档时执行,不在更新时执行。为了更新文档(如果存在),您必须提供一些将在更新文档时执行的操作。
试试这样的方法:
bulk = pros_rides.initialize_unordered_bulk_op()
for doc in books_df:
bulk.find({'_id': doc['_id']}).upsert().replace_one(doc)
bulk.execute()