Azure DocumentDB - 将对象插入文档数组?

Ste*_*lak 2 c# azure azure-cosmosdb

我正在开发一个简单的问答论坛.我想使用Azure DocumentDB.

如何在DocumentDB中添加现有问题文档的答案?

在我的情况下,我已经完成了与问题相同类型的答案列表:

public List<Announcement>  { get; set; }
Run Code Online (Sandbox Code Playgroud)

我的文档对象如下所示:

public class Announcement
{
    [JsonProperty(PropertyName = "id")]
    public string ID { get; set; }

    [JsonProperty(PropertyName = "userid")]
    public int UserID { get; set; }

    [JsonProperty(PropertyName = "username")]
    public string UserName { get; set; }

    [JsonProperty(PropertyName = "useripaddress")]
    public string UserIPAddress { get; set; }

    [JsonProperty(PropertyName = "body")]
    public string Body { get; set; }

    [JsonProperty(PropertyName = "tags")]
    public List<string> Tags { get; set; }

    [JsonProperty(PropertyName = "datecreate")]
    public DateTime DateCreate { get; set; }

    [JsonProperty(PropertyName = "isedited")]
    public bool IsEdited { get; set; }

    [JsonProperty(PropertyName = "dateedit")]
    public DateTime DateEdit { get; set; }

    [JsonProperty(PropertyName = "imageaddonid")]
    public string ImageAddonId { get; set; }

    [JsonProperty(PropertyName = "imageaddonsource")]
    public string ImageAddonSource { get; set; }

    [JsonProperty(PropertyName = "answers")]
    public List<Announcement>  { get; set; }

}
Run Code Online (Sandbox Code Playgroud)

我没有在DocumentClient中看到任何更新方法:/.

mmg*_*666 5

对我来说,您需要使用该ReplaceDocumentAsync方法来更新您的文档.

据我所知,你需要更换整个文件; 因为当你改变某些东西时,你更新整个文档而不是它的一部分.

您可以在此处查看有关该方法的文档

  • 不幸的是它正在取代整个文件.补丁功能不可用.您始终可以使用答案创建单独的集合(或其他类型的文档),这样您可以在不触及主文档的情况下添加和删除它们,您始终可以运行查询以返回所有答案. (3认同)