2

私は簡単な質問と回答のフォーラムを開発しています。Azure DocumentDB を使用したいです。

DocumentDB の既存の質問ドキュメントに回答を追加するにはどうすればよいですか?

私の場合、質問と同じタイプの回答のリストを作成しました:

public List<Announcement>  { get; set; }

私の文書オブジェクトは次のようになります。

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; }

}

DocumentClient :/ に更新メソッドが表示されません。

4

2 に答える 2

5

ReplaceDocumentAsync私にとっては、ドキュメントを更新するにはメソッドを使用する必要があります。

私が知る限り、ドキュメント全体を置き換える必要があります。何かを変更すると、ドキュメントの一部ではなくドキュメント全体が更新されるためです。

ここでメソッドに関するドキュメントを確認できます

于 2014-11-16T19:26:02.703 に答える
2

現時点では、ドキュメントの一部を更新することはできません。ドキュメント全体を更新する必要があります。ドキュメントの一部を更新することは、頻繁に要求される機能であり、Microsoft に将来追加するよう投票することができます。Azure の Uservoice でそうしてください: https://feedback.azure.com/forums/263030-documentdb/suggestions/6693091-be-able-to-do-partial-updates-on-document


いずれにせよ、質問自体に回答を埋め込むかどうかを再考する必要があります。

Modeling data in DocumentDBの記事によると、次の場合は埋め込む必要があります

  • エンティティ間に含まれる関係があります。

  • エンティティ間には 1 対少数の関係があります。

  • まれに変更される埋め込みデータがあります。

  • 埋め込まれたデータは際限なく増大しません。

  • ドキュメント内のデータに不可欠な埋め込みデータがあります。

太字の箇条書きを見ると、質問内に回答を含めることはお勧めできません。何千もの回答が含まれる可能性があり、質問ドキュメントは頻繁に変更される可能性があるためです。

代わりに、次のいずれかを使用できます

  • 各回答は質問への参照を含むドキュメントとして定義されているため、誰かが回答を追加するときに回答ドキュメントを追加するだけです。それが最も簡単なオプションです。
  • または、たとえば100 の回答で構成されるドキュメントを定義して、サイズが大きくなりすぎないようにすることもできます。しかし、それを管理するにはもう少し計画が必要です。
于 2016-08-04T17:31:25.443 に答える