我正在将我的应用程序从使用SQL Server切换到MongoDB。
这样做的一个主要原因是可以使用无结构的集合。
在我的“SQL版本”中,我有一个名为RawSensorMessage
的对象,其中包含许多属性,并且大多数属性在大多数情况下都是空的。所以当我搬进Mongo时,我将RawSensorMessage
定义更改为以下内容:
[DataContract]
public class RawSensorMessage
{
[DataMember]
public Dictionary<string, object> Data { get; set; }
}
假设在Mongo内部我有一个包含许多记录的集合,每个记录包含不同的属性。 当我查询这个集合时,我不想将它映射到强类型对象,我想将它查询到'RawSensorMessage'对象(意味着用属性和值填充'Data'字典)。
我该怎么办? 是否接受使用无结构集合的方法?
答案 0 :(得分:1)
解决方案是将您从MongoDB获取的BSON文档转换为JSON对象:ToJSON()之后,您可以将JSON对象序列化为字典,如下所示:
var result = JsonConvert.DeserializeObject<Dictionary<string, object>>(json);
希望得到这个帮助。