0

私はC#を使用しています.mongo dbドキュメントの1つはそのような構造になっています

Class QuestionData{
    public Guid Id { get; set; }
    public string Type { get; set; }
    public List<NotesQuestion> Question { get; set; }
}

というわけで更新をしたいと思います。次のように更新を書きます。

var update = Update.Set("Question", data.Question);

「データ」は QuestionData の一種です。しかし、今ではデータの「無効な引数」と表​​示されます。質問。に変更すると

  var update = Update.Set("Question", data.Question.ToJson());

問題ありません。しかし、json文字列として保存したくありません。この問題を解決するにはどうすればよいですか?

4

1 に答える 1

0

私自身のモデルクラスでは、

internal class QuestionData
{
  [BsonId] public Guid Id { get; set; }
  [BsonElement("type")] public string Type { get; set; }
  [BsonElement("qnotes")] public QuestionNote[] QuestionNotes { get; set; }
}

[BsonNoId] internal class QuestionNote
{
  [BsonElement("q")] public string Question { get; set; }
  [BsonElement("n")] public string Note { get; set; }
}

次のように bson 配列全体を上書きできます。

// get client, database, collection ...
var col = Database.GetCollection<QuestionData>("questions");
// QuestionNote[] toModifyWith = ... 
var udb = Builders<QuestionData>.Update;
var fdb = Builders<QuestionData>.Filter;
var ur = await col.UpdateManyAsync(fdb.Empty, udb.Set(x => x.QuestionNotes, toModifyWith )); 
于 2016-10-07T15:11:38.490 に答える