gpt4 book ai didi

mongodb - 如何使 MongoDB Upsert 真正幂等?

转载 作者:行者123 更新时间:2023-12-04 14:11:20 24 4
gpt4 key购买 nike

我想以幂等方式将文档插入 MongoDB。

MongoDB 文档以及 SO 此处提供的解释是使用 upsert=True 修饰符。

但是,据我了解,这并不能保证幂等性,因为可以修改已经存在的文档。

我要找的操作如下:

  • 如果由某个键标识的文档不存在,则插入它。
  • 如果具有给定键的文档已经存在,则可能会发生两种情况:
    • 现有文档与提供的文档完全相同。然后,返回与插入新文档相同的结果。
    • 现有文档与提供的文档不同:抛出错误,因为会违反幂等性。

MongoDB 开箱即用地支持这样的操作吗?为什么 upsert 操作被标记为幂等,即使它们可能会修改已经存在的文档?

最佳答案

幂等性意味着您可以执行相同的操作两次并产生与只发生一次相同的效果。 upsert 这个名字也是一个提示:它是 updateinsert 的缩写。这意味着它将(如果存在)更新现有文档或插入新文档。所以:upsert 操作被标记为幂等,因为它们。您对幂等一词的解释与其他人不同。

您的用例。要求是另外一回事。据我所知,在 MongoDB 中很难做到这一点,因为没有可用的通用内置事务机制(至少我最近看过)。您需要从您的应用程序中执行类似两阶段提交的操作。

关于mongodb - 如何使 MongoDB Upsert 真正幂等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63980098/

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