代码之家  ›  专栏  ›  技术社区  ›  Raas Masood

cosmosdb sql api和mongodb api我的场景使用哪一个。

  •  1
  • Raas Masood  · 技术社区  · 8 年前

     "Chat": [
            {
              "User": {},
              "Message": "i have a question",
              "Time": "06:55 PM"
            },
            {
              "User": {},
              "Message": "will you be able to ",
              "Time": "06:25 PM"
            },
            {
              "User": {},
              "Message": "ok i will do that",
              "Time": "07:01 PM"
            }
    

    每次一个新的聊天信息到达我应该能够简单地附加到这个数组。

    mongodbapi聚合管道(preview)允许我使用$push$addToSet之类的工具

    如果我使用sqlapi,每次修改它时我都要拉取整个文档,每次都要创建一个新文档。

    其他注意事项: 这个阵列可以快速增长。 这个“聊天”文档也可以嵌套到其他文档中。

    我的问题 这是否意味着mongodbapi更适合这种情况,而sqlapi在这种情况下的性能会受到影响?

    1 回复  |  直到 7 年前
        1
  •  0
  •   halfer Jatin Pandey    7 年前

    在这种情况下,性能会受到影响吗?

    很难说哪个数据库是最好的选择。

    是的,就像在 doc ,Cosmos Mongo API支持 $push $addToSet 哪个更有效。然而,事实上,cosmosmongoapi只支持MongoDB特性的一个子集,并将请求转换为cosmossql等价物。所以,也许cosmosmongoapi有一些不同的行为和结果。但是cosmosmongoapi有责任改进对MongoDB的模拟。

    当谈到cosmossqlapi时,部分更新到目前为止还不受支持,但它正在起步。你可以提交反馈 here stored procedure 做这项工作来释放你客户的压力。

    接下来我想说的是,最重要的是@David提到的限制。文档大小在sql api中有2MB限制,在mongo api中有4MB限制: What is the size limit of a cosmosdb item? . 由于您的聊天数据正在增长,您需要考虑将其拆分。然后给文档一个分区键,例如 "type": "chatdata" 把它们分类。

    推荐文章