簡體   English   中英

如何使用 Pymongo 進行批量更新插入查詢?

[英]How can i make a bulk upsert query with Pymongo?

我正在使用 Pymongo 在 for 循環上執行一些 upsert 查詢,但由於查詢需要太多時間來執行,我嘗試使用批量寫入操作執行相同的任務。 但是,我不熟悉語法,並且遇到了一些問題:

根據文檔,我需要定義一個操作數組,因此我執行了以下操作:

Queries = [[{'Unix': 1596873600.0}, {'$set': {'Unix': 1596873600.0, 'O': '11586.08000000', 'H': '11801.72000000', 'L': '11562.17000000', 'C': '11775.52000000', 'V': '9066.55659000', 'market': 'BTCUSDT'}, 'upsert': True}], [{'Unix': 1596888000.0}, {'$set': {'Unix': 1596888000.0, 'O': '11775.52000000', 'H': '11808.27000000', 'L': '11706.39000000', 'C': '11738.10000000', 'V': '6628.24686700', 'market': 'BTCUSDT'}, 'upsert': True}...]]
db['myCol'].bulk_write(Queries)

這給了我一個is not a valid request錯誤。 任何人都可以幫助我了解此查詢的語法嗎?我正在使用 PyMongo。 提前致謝!

您需要使用批量運算符,在您的情況下UpdateOne()

from pymongo import MongoClient, UpdateOne

db = MongoClient()['mydatabase']

Queries = [UpdateOne({'Unix': 1596873600.0}, {'$set': {'Unix': 1596873600.0, 'O': '11586.08000000'}}, upsert=True),
           UpdateOne({'Unix': 1596888000.0}, {'$set': {'Unix': 1596888000.0, 'O': '11775.52000000'}}, upsert=True)]

db['myCol'].bulk_write(Queries)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM