使用C#将json字符串作为对象存入MongoDB
开通博客园很久了,一直想写点东西,表达从博客园中向各位前辈学到的知识的回馈,如果能够帮助新人(自己也还是个新人)就更好了,但总是因为拿时间作为借口,一直搁置下来,今天刚好在工作中碰到一个小问题,并愉快的解决了,权当将其记录下来,供人查阅,首先声明本人是个忠实的微软技术爱好者,主要使用的也是.NET语言。下面进入正题。
今天在向mongodb中导数据的过程中,使用了MongoDB官方的驱动(可以在Nuget中直接安装),然后读取一个json字符串并将其直接写入到mongdb中,就是普通的mongdb操作,本以为不会有什么问题,谁知通过mongovue客户端打开一看,只是存入了一个string类型的对象,mongdb并没有自动解析成Document对象,难道要先将json字符串解析成对象?于是导入了Newton,由于懒的创建一个类来解析json,所以使用了JsonConvert.DeserializeObject(json)将json转换成一个匿名的JObject对象然后导入mongodb中,谁知问题更大,虽然mongdb中已经变成了Document对象,但是变成了结构完全一致,key value全是JObject JProperty等等不知所云的对象,百思不得其解,折腾了半天也没有得到结果,百度半天还是没有结果,然后Bing了一下,在stackoverflow中找到这么一句话BsonDocument document = BsonDocument.parse(json);
出处为(http://stackoverflow.com/questions/5624934/convert-string-into-mongodb-bsondocument)。于是赶紧测试将json转为BsonDocument
然后再导入mongodb,发现完美解决了这个问题。看样子还是对mongodriver不太熟悉造成的。
在这里我仅是记录下今天工作中遇到的问题,由于第一次写博客,可能表达的不是很清晰,总之希望借此篇来开始自己的博客园之旅,欢迎提出宝贵意见,共同学习。