gpt4 book ai didi

azure-cosmosdb - 文档数据库 : What's the point of "Upsert"?

转载 作者:行者123 更新时间:2023-12-04 16:50:54 24 4
gpt4 key购买 nike

我正在尝试理解 API 的这一部分,以便我可以以最有效的方式更新文档。

鉴于以下情况:

  • Replace ”要求文档已经存在
  • Upsert ”不需要文档存在,但如果要进行更新,则需要文档 ID。
  • 这两个命令都不能进行部分文档更新,这意味着我想不出任何不必先查询文档,然后更改受影响的属性,然后替换/更新整个文档的情况。

  • 如果我总是必须首先查询文档以避免清除任何未传递回 upsert/replace 的属性值,并且我无法进行部分更新,那么同时拥有 upsert 和 replace 有什么意义?

    我是否错过了这两个命令的预期用例?

    最佳答案

    您已经描述了两者之间的主要区别。如果尚不存在,则 Upsert 将创建一个文档,否则将覆盖它。替换要求文档已经存在,然后覆盖它。使用哪个是您的应用程序的问题。在某些情况下,您可能希望使用替换,因为如果文档不存在,它将在您的业务逻辑中构成错误。否则它们非常相似。

    我知道无法进行部分更新可能会令人沮丧。然而,Cosmos 有一个强大的服务器端编程模型,它是您用 Javascript 编写的存储过程形式。您可以轻松创建一个 SPROC,该 SPROC 接收部分文档并更新或添加那些新的或更改的属性,这些属性将为您提供最终寻找的功能。

    关于azure-cosmosdb - 文档数据库 : What's the point of "Upsert"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45337532/

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