当前位置: 首页 > 知识库问答 >
问题:

Azure function update CosmosDB SQL Array in document

蒋啸
2023-03-14

我正在使用Azure Functions和Cosmos DBSQL使用javascript创建无服务器应用程序。

我拥有用户项的以下数据库模式:

{
    "id": "user_id_2",
    "username": "username_2",
    "pass": "pass_1",
    "feed": [],
    "followed": [
        "username_1",
        "username_3",
        "username_4"
    ],
    "followers": [
        "username_3",
        "username_4"
    ]
}

目前,当一个user_1跟随另一个user_2我会更新数据库文档user_1-没问题。但是现在我还需要为user_2更新文档,特别是字符串数组-追随者。如何通过带有绑定的azure函数来做到这一点?我想出的唯一方法是查询整个文档的数据库,在客户端更新它,然后在数据库中PUT,覆盖之前的文档。然而,这似乎很荒谬...

共有1个答案

华知
2023-03-14

Cosmos DB目前不支持部分更新,因此拉取文档、将项目添加到数组中然后执行PUT是唯一的选择。

话虽如此,你的数据设计的问题是,追随者是无限的数组,你的用户规模可以在不受控制的情况下增长。大小越大,需要的 RU 操作就越多。

请查看何时不在此嵌入https://docs.microsoft.com/azure/cosmos-db/modeling-data#when-不嵌入

当我在创建社交应用程序时,我为社交应用程序编写了一个设计文档:https://docs.microsoft.com/azure/cosmos-db/social-media-apps

理想情况下,A跟随B的关系将是它自己的文档。您可以将它们存储在Graph帐户中以获得最佳性能,因为您在这里真正构建的是一个图形,您将运行的查询是“谁跟随B?”或“谁关注我的追随者?”。

 类似资料:

相关问答

相关文章

相关阅读