首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在mongoengine上找不到很多更新

在mongoengine上找不到很多更新
EN

Stack Overflow用户
提问于 2018-05-09 17:43:33
回答 2查看 4.6K关注 0票数 0

这段代码返回了一个我不明白的错误:

查询= 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‘的多个值

EN

回答 2

Stack Overflow用户

发布于 2018-05-29 21:11:43

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

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

代码语言:javascript
复制
Analytic.objects(query_params='value').update(set__param='value')

代码语言:javascript
复制
query = Analytic.objects(query_params='value')
query.update(set__param='value')

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

票数 5
EN

Stack Overflow用户

发布于 2018-05-24 05:32:20

看起来您已经在遍历它的所有对象-- queryset。

query = Analytic.objects(uid__type="binData")

则对于满足~的循环的每一次迭代

代码语言:javascript
复制
if len(analytics) == 100000:
    Analytic.objects.update(analytics, upsert=False)
    analytics = []

启动另一个查询并将分析设置为空数组。在这里,您将检索一个查询中的许多对象。既然你已经在循环中了,我想你想

代码语言:javascript
复制
analytics_array= []

..。

代码语言:javascript
复制
if len(analytics) == 100000:
    analytics.save()
    analytics_array.append(analytics)

保存将更新已经创建的对象。不确定这是否是您想要的,但是错误肯定来自于读"Analytic.objects.update(analytics,upsert=False)的一行。希望这会有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50259222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档