0

我正在使用 c# 其中一个 mongo db 文档就是这样的结构

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 的一种。但现在它说 data.Question 的“无效参数”。如果我将其更改为

  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 回答