MongoDB - 如何将集合反序列化为List <dictionary <string,object =“”>&gt; </dictionary <string,>

时间:2014-10-26 08:18:22

标签: c# mongodb bson

我正在将我的应用程序从使用SQL Server切换到MongoDB。 这样做的一个主要原因是可以使用无结构的集合。 在我的“SQL版本”中,我有一个名为RawSensorMessage的对象,其中包含许多属性,并且大多数属性在大多数情况下都是空的。所以当我搬进Mongo时,我将RawSensorMessage定义更改为以下内容:

   [DataContract]
    public class RawSensorMessage
    {
        [DataMember]
        public Dictionary<string, object> Data { get; set; }
    }

假设在Mongo内部我有一个包含许多记录的集合,每个记录包含不同的属性。 当我查询这个集合时,我不想将它映射到强类型对象,我想将它查询到'RawSensorMessage'对象(意味着用属性和值填充'Data'字典)。

我该怎么办? 是否接受使用无结构集合的方法?

1 个答案:

答案 0 :(得分:1)

解决方案是将您从MongoDB获取的BSON文档转换为JSON对象:ToJSON()之后,您可以将JSON对象序列化为字典,如下所示:

var result = JsonConvert.DeserializeObject<Dictionary<string, object>>(json);

希望得到这个帮助。