我們有一個包含數百個類/枚舉的大型應用程序,我們希望使用MongoDB來存儲其中的一些。將.NET對象插入到MongoDB中
情況是,有一個當前的系統,我們將.NET對象序列化爲SQL數據庫中的字段,然後按需要反序列化。我們想要的是將對象放到Mongo中,這樣可以直接查詢對象的屬性(即不需要將對象加載到內存中,反序列化等)。這樣我們就可以開始從歷史數據中獲取一些分析數據,而不必大幅改變代碼庫。
我的問題是,這是否容易?有沒有在C#驅動程序內置串行器來做到這一點?
我也很樂意提供更好的方法來做到這一點,如果我想要做的事情本質上是錯誤的。
更新:要清楚,我想要做的是拿一個已經使用NHibernate加載的對象,並將其作爲Queryable對象插入到Mongo中。最終,我也想在某些時候將它加載回內存。
它記錄在這裏:http://docs.mongodb.org/ecosystem/tutorial/serialize-documents- with the-csharp-driver/ – WiredPrairie 2013-03-05 13:02:31
我試圖做到這一點,沒有對代碼進行大規模的修改,而且上面的鏈接看起來像我需要爲每個實體(以及它的子代)創建一個ClassMap ...是否有相當於組裝的NHiberate Automap? – Martin 2013-03-05 13:30:06
當你切換到一個新的數據庫,並試圖添加新的功能...我期望一些大量的代碼流失。對不起,我不熟悉NHibernate的Automap。 C#驅動程序具有Mapper功能和屬性,並通過'IBsonSerializable'定製序列化(或使用更原始的/原生的'BsonDocument')。如果你希望MongoDB表現良好,你將添加正確的索引,映射到標準數據類型等。我期望它是一個合理的工作量。 – WiredPrairie 2013-03-05 15:30:43