如何更新MongoDB文档中的字典
本文关键字:MongoDB string 文档 字典 byte 何更新 更新 | 更新日期: 2023-09-27 17:49:53
如何更新<byte,string>BSON文档中的字典属性?我不知道如何使用BSON类型。对象是使用自动BSON序列化存储的,我想替换整个Dictionary。
假设我们有这样一个类:
public class Message
{
public string Text {get;set;}
public Dictionary<byte, string> Contents {get;set;}
}
在MongoDB中它看起来像这样的消息集合:
{
_id : 12345,
Text : "This is a text",
Contents: [ [1 : "true"], [3 : "youtube"] ]
}
更新应该是这样的
var query = Query.EQ("_id", messageId);
var update = Update.Set("Contents", -> how to build me?);
MessageCollection.Update(query, update);
我现在正在序列化完整的消息对象,然后将字典部分取出以进行更新。
var messageDoc = new BsonDocument();
var bsonWriter = BsonWriter.Create(messageDoc);
BsonSerializer.Serialize<Message>(bsonWriter, message);
var query = Query.EQ("_id", messageId);
var update = Update.Set("Contents", messageDoc["Contents"]);
MessageCollection.Update(query, update);