C# Mongodb中的字典更新
我有一个存储以下数据的类:C# Mongodb中的字典更新,c#,mongodb,dictionary,mongodb-.net-driver,C#,Mongodb,Dictionary,Mongodb .net Driver,我有一个存储以下数据的类: public class User { public ObjectId _id { get; set; } public string Name { get; set; } public string Pass { get; set; } public Dictionary<string, Tuple<string, string>> Quests { get; set; } } 公共类用户 { 公共对象id{
public class User
{
public ObjectId _id { get; set; }
public string Name { get; set; }
public string Pass { get; set; }
public Dictionary<string, Tuple<string, string>> Quests { get; set; }
}
公共类用户
{
公共对象id{get;set;}
公共字符串名称{get;set;}
公共字符串传递{get;set;}
公共字典任务{get;set;}
}
新用户将使用以下命令进行实例化:
await collection.InsertOneAsync(new User { Name = u, Pass = p,
Quests = new Dictionary<string,Tuple<string,string>>() });
wait collection.InsertOneAsync(新用户{Name=u,Pass=p,
Quests=newdictionary()});
我知道如何从创建的文档中查找和提取信息,但我不知道如何推送和保存对文档的更改。大多数在线答案都是针对旧的Mongodb C#驱动程序的,因此像Query
或.save()
之类的东西不存在,或者我没有在程序中包含正确的包
我希望能够在字典中添加和删除条目,然后保存对文档的更改。有什么建议吗?不知道你到底想要什么。MongoDB中基本上有两种类型的更新:您可以执行原子更新或替换文档 替换文档通常更容易,因为它允许您使用标准C#操作执行修改,并将重新评估生成的属性等:
var user = new User { Name = "John Doe", Quests =
new Dictionary<string, Tuple<string, string>> {
{ "hoho", new Tuple<string, string>("A", "A-Item") } } };
users.InsertOneAsync(user).Wait();
user.Quests = new Dictionary<string, Tuple<string, string>> {
{ "hoho Modified", new Tuple<string, string>("B", "B-Item") } };
users.ReplaceOneAsync(p => p.Id == user.Id, user);
建议:RTFM:D查找updateOneSyncDoing,以便为我提供元素
“
与类服务器的任何字段或属性都不匹配。用户:D因此RTFM没有真正的帮助
users.UpdateOneAsync(p => p.Id == user.Id,
Builders<User>.Update.Set("Quests.hoho Modified",
new Tuple<string, string>("B", "B-Item")));