我正在使用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);
'data'是一种QuestionData。 但现在它说数据的“无效论证”。问题。 如果我将其更改为
var update = Update.Set("Question", data.Question.ToJson());
没问题。但我不想将其保存为json字符串。 如何解决这个问题?
答案 0 :(得分: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 ));