我很难找到如何使用mongoengine在MongoDB中upsert。
我当前的插入代码如下所示:
for issue in data['issues']:
doc = Issue(
key=issue['key'],
title=issue["fields"]["summary"],
type=issue["fields"]["issuetype"]["name"],
status=issue["fields"]["status"]["name"],
assignee=issue["fields"]["assignee"]["displayName"] if issue["fields"]["assignee"] else None,
labels=issue["fields"]["labels"],
components=[c['name'] for c in issue["fields"]["components"]],
storypoints=int(issue["fields"]["customfield_10002"]) if issue["fields"]["customfield_10002"] else 0,
sprints=[x['name'] for x in sprint_dict] if sprint_dict != None else None,
updated_at=datetime.utcnow(),
created=issue["fields"]["created"]
)
doc.save()
这当然只是保存,但我已经尝试了这么多的update
的变种与upsert=True
等,我发现,他们没有一个工作。
1条答案
按热度按时间kq4fsx7k1#
在这里https://docs.mongoengine.org/apireference.html#mongoengine.queryset.QuerySet.update_one
假设唯一ID为
key
,并且您希望在更新时覆盖所有字段,则它必须为组件和sprint似乎是列表,因此如果要添加到列表中而不是覆盖它们,则应使用
所有修改器列表如下所示:https://docs.mongoengine.org/apireference.html#mongoengine.queryset.QuerySet.update_one选择适合你的广告创意的广告。