4

BSON ドキュメントの <byte,string> Dictionary プロパティの表現を更新するにはどうすればよいですか? BSON タイプでそれを行う方法がわかりません。オブジェクトは自動 BSON シリアライゼーションを使用して保存されており、ディクショナリ全体を置き換えたいと考えています。

このクラスがあるとしましょう:

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);
4

1 に答える 1

1

現在、完全なメッセージ オブジェクトをシリアル化し、更新のために辞書の部分を取り出しています。

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);
于 2012-12-31T13:50:55.587 に答える