Azure cosmosdb DocumentDB:如何更新部分属性值

Azure cosmosdb DocumentDB:如何更新部分属性值,azure-cosmosdb,Azure Cosmosdb,我已经为此挣扎了一段时间。这是我的文件 { "id": "1", "Scenario": "Welcome page", "Translations": [ { "Language": "En", "Content": "Welcome!" }, { "Language": "Fr", "Content": "Bienvenue!" } ], "LastModified": "2016-05-27

我已经为此挣扎了一段时间。这是我的文件

{
  "id": "1",
  "Scenario": "Welcome page",
  "Translations": [
    {
      "Language": "En",
      "Content": "Welcome!"
    },
    {
      "Language": "Fr",
      "Content": "Bienvenue!"
    }
  ],
  "LastModified": "2016-05-27T17:27:58.562-06:00",
  "ModifiedBy": "admin",
  "LastAccessed": "2016-06-13T10:27:58.562-06:00"
}
这是我更新属性的代码(我在这里硬编码了要修改的值):

但我想要的是:

{
    "id": "1",
    "Scenario": "Welcome page",
    "Translations": [
      {
        "Language": "En",
        "Content": "Welcome to Stackoverflow!"
      },
      {
        "Language": "Fr",
        "Content": "Bienvenue!"
      }
    ],
    "LastModified": "2016-05-27T17:27:58.562-06:00",
    "ModifiedBy": "admin",
    "LastAccessed": "2016-06-13T10:27:58.562-06:00"
}

那么,我怎样才能只更新文档的部分属性而不弄乱其他属性呢

DocumentDB没有适当的更新。您必须阅读文档,在客户端更新它,然后在旧文档的顶部重新保存它。或者,您可以使用“外键”将翻译列表反规范化为单独的文档,返回到与之相关的场景。

DocumentDB没有适当的更新。您必须阅读文档,在客户端更新它,然后在旧文档的顶部重新保存它。或者,您可以使用“外键”将翻译列表反规范化为单独的文档,返回到与之相关的场景。

否,该示例正是我想要的。我想在不影响法国财产的情况下更新英文内容。在我的代码中,我阅读了文档,但无法从客户端更新英文内容,因为我不知道如何只更新“doc.SetPropertyValue(“Content”,“欢迎使用Stackoverflow!”);“
在DocumentDB中是否可能只更新一个子属性?不,替换或插入整个文档。是的,经过一些研究,我意识到不可能更新部分属性。我不同意我必须替换整个文件。但我的问题是如何更新一个子属性“Content”:“Welcome!”,而不影响另一个属性“Content”:“Bienvenue!”。我发现更新文档属性的唯一方法是使用“SetPropertyValue”。这就是我的问题:我有两个内容属性。是否有一种方法可以执行类似SetPropertyValue(“内容”,“欢迎使用Stackoverflow!”)的操作。其中(Language=“En”)?谢谢我在NoSQL解决方案中使用node.js,而不是.NET。在JavaScript中,我将使用
a=doc.Translations
提取数组。然后我将使用下划线的findIndex函数
I=.\findIndex(a,{Language:'En'})
。然后我会更新它
doc.Translations[I].Content='欢迎来到Stackoverflow!'。我想在你的环境中也会有类似的效果。谢谢!这真的很有帮助!不,这个例子正是我想要的。我想在不影响法国财产的情况下更新英文内容。在我的代码中,我阅读了文档,但无法从客户端更新英文内容,因为我不知道如何只更新“doc.SetPropertyValue(“Content”,“欢迎使用Stackoverflow!”);“
在DocumentDB中是否可能只更新一个子属性?不,替换或插入整个文档。是的,经过一些研究,我意识到不可能更新部分属性。我不同意我必须替换整个文件。但我的问题是如何更新一个子属性“Content”:“Welcome!”,而不影响另一个属性“Content”:“Bienvenue!”。我发现更新文档属性的唯一方法是使用“SetPropertyValue”。这就是我的问题:我有两个内容属性。是否有一种方法可以执行类似SetPropertyValue(“内容”,“欢迎使用Stackoverflow!”)的操作。其中(Language=“En”)?谢谢我在NoSQL解决方案中使用node.js,而不是.NET。在JavaScript中,我将使用
a=doc.Translations
提取数组。然后我将使用下划线的findIndex函数
I=.\findIndex(a,{Language:'En'})
。然后我会更新它
doc.Translations[I].Content='欢迎来到Stackoverflow!'。我想在你的环境中也会有类似的效果。谢谢!这真的很有帮助!
{ 
    "id": "1",
    "Scenario": "Welcome page",
    "Language": "En",
    "Content": "Welcome to Stackoverflow!",
    "LastModified": "2016-05-27T17:27:58.562-06:00",
    "ModifiedBy": "admin",
    "LastAccessed": "2016-06-13T10:27:58.562-06:00"
}
{
    "id": "1",
    "Scenario": "Welcome page",
    "Translations": [
      {
        "Language": "En",
        "Content": "Welcome to Stackoverflow!"
      },
      {
        "Language": "Fr",
        "Content": "Bienvenue!"
      }
    ],
    "LastModified": "2016-05-27T17:27:58.562-06:00",
    "ModifiedBy": "admin",
    "LastAccessed": "2016-06-13T10:27:58.562-06:00"
}