gpt4 book ai didi

django - MongoEngine get_or_create 备选方案

转载 作者:行者123 更新时间:2023-12-02 01:07:21 26 4
gpt4 key购买 nike

我一直在 Django 应用程序中使用 get_or_create 方法和 MongoEngine。今天,我注意到有一些重复的条目。我在 get_or_create 的 MongoEngine API 引用中遇到了这个:

This requires two separate operations and therefore a race condition exists. Because there are no transactions in mongoDB other approaches should be investigated, to ensure you don’t accidentally duplicate data when using this method. This is now scheduled to be removed before 1.0

我应该使用这样的东西吗?:

from models import Post
post = Post(name='hello')
try:
Posts.objects.get(name=post.name)
print "exists"
except:
post.save()
print "saved"

这能解决我的问题吗?有没有更好的办法?

最佳答案

要执行更新插入,请使用以下语法:

Posts.objects(name="hello").update(set__X=Y, upsert=True)

这将添加一个名为“hello”的帖子,如果它不存在则 X = Y,否则它将更新一个现有的帖子,只设置 X = Y。

关于django - MongoEngine get_or_create 备选方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21127105/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com