无法弄清楚 mongoengine 上的许多更新

Bad*_*ano 0 mongodb mongoengine python-3.x

此代码返回一个我不明白的错误:

query = Analytic.objects(uid__type="binData")
analytics = []
for analytic in query:
    analytic.sessionId = str(analytic.sessionId)
    analytic.uid = str(analytic.uid)
    analytics.append(analytic)
    if len(analytics) % 10000 == 0:
        print(".")
    if len(analytics) == 100000:
        Analytic.objects.update(analytics, upsert=False)
        analytics = []
Run Code Online (Sandbox Code Playgroud)

类型错误:update() 获得参数“upsert”的多个值

Jos*_*gas 5

同时更新多个文档,我能够使用文档中用户指南中的原子更新部分使其正常工作。 原子更新

所以你的更新应该看起来有点像

Analytic.objects(query_params='value').update(set__param='value')
Run Code Online (Sandbox Code Playgroud)

或者

query = Analytic.objects(query_params='value')
query.update(set__param='value')
Run Code Online (Sandbox Code Playgroud)

该部分包含您可能想要查看的修改列表。您可能仍然希望在循环之外进行更新,因为您将多次更新查询。