这段代码返回了一个我不明白的错误:
查询= Analytic.objects(uid__type="binData")分析= []用于查询中的分析: analytic.sessionId = str(analytic.sessionId) analytic.uid = str(analytic.uid) analytics.append(分析)如果len(分析)% 10000 == 0: print(“”)如果连(分析) == 100000: Analytic.objects.update(分析,upsert=False)分析= [] TypeError: update()获得了参数'upsert‘的多个值
发布于 2018-05-29 21:11:43
同时更新多个文档,我能够使用文档中的用户指南中的原子更新部分让它工作。原子更新
所以你的更新应该看起来有点像
Analytic.objects(query_params='value').update(set__param='value')或
query = Analytic.objects(query_params='value')
query.update(set__param='value')该部分有可能要查看的修改列表。您可能仍然希望在循环之外进行更新,因为您将多次更新查询。
发布于 2018-05-24 05:32:20
看起来您已经在遍历它的所有对象-- queryset。
query = Analytic.objects(uid__type="binData")
则对于满足~的循环的每一次迭代
if len(analytics) == 100000:
Analytic.objects.update(analytics, upsert=False)
analytics = []启动另一个查询并将分析设置为空数组。在这里,您将检索一个查询中的许多对象。既然你已经在循环中了,我想你想
analytics_array= []..。
if len(analytics) == 100000:
analytics.save()
analytics_array.append(analytics)保存将更新已经创建的对象。不确定这是否是您想要的,但是错误肯定来自于读"Analytic.objects.update(analytics,upsert=False)的一行。希望这会有所帮助!
https://stackoverflow.com/questions/50259222
复制相似问题