mvc 4应用程序和mongodb之间的集成

时间:2012-10-18 21:20:44

标签: c# .net asp.net-mvc mongodb nosql

我目前正在研究asp.net mvc4 Web应用程序。部分应用程序,用户可以登录和浏览站点等。站点的数据存储在sql server数据库中,包含用户信息等。

该网站的新功能将是所有用户向网站上显示的特定产品添加评论。由于可能有数十万客户和数千种产品,因此这有很多数据。

所以我开始查看此数据的NoSql选项,而不是将其存储在关系sql server数据库中。我一直在看Mongo Db。我的第一个问题,这是我采取的正确方法吗?

下一个主题,c#/ .net与mongo数据库的集成有多容易。我以前没有用过这个,所以我对这方面的了解很少。理想情况下,我会根据特定的产品标识符查询mongo db(因缺少正确的术语)。我认为我可以编写一个查询样式来获取这些数据。

我的下一个问题是关于mongo db的冗余问题。使用sql server,如果主数据库服务器出现问题,我有一个故障转移服务器。与mongo有类似的概念或它是如何工作的?我的考虑是mongo在与sql server数据库相同的服务器上运行。 mongo db中的数据不是关键任务,但sql server中的数据是。我的Web应用程序将在负载平衡环境中的多个服务器上运行。

mongo db可以轻松移动到另一台服务器吗?即。如何扩大规模?甚至可以将来自它的数据复制到另一个mongo db?

我感谢我的问题属于初学者标准,但我目前正在研究这个主题,所以协助会很棒。

4 个答案:

答案 0 :(得分:1)

只要您配置了一些缓存,Sql server就足以容纳注释。关于Sql Server的好处是外键的数据完整性以及查询能力。

然而,在C#中使用Mongo并不是一件大事。有一点学习曲线,但这是学习任何新技术。

连接和使用MongoDB

MongoDB有官方驱动程序和NuGet包供您使用。 http://www.mongodb.org/display/DOCS/CSharp+Language+Center了解更多信息。

<强>冗余

Mongo支持副本集,其中第二台服务器将模仿第一台服务器上的所有数据。有关设置的信息可以在这里找到:http://docs.mongodb.org/manual/tutorial/deploy-replica-set/应该注意的是MongoDB中的查询与Sql Server略有不同。

现在我个人在我的一个企业应用程序中使用mongoDB,但我会说这是一条经验法则:如果你不是绝对需要使用它,你可能最好不要使用一个数据库引擎。大多数情况下,您只需要管理一个数据库引擎。只是我的意见。也许redis用于缓存?

答案 1 :(得分:0)

如果您没有硬件内存问题(您可以购买大量内存,则需要)Mongo可以作为您的解决方案。

答案 2 :(得分:0)

在mongodb设计中你会做一种非规范化的事情......

在我看来,成千上万的用户案例你的SQL服务器已经足够......在你的数据库设计中做一些更多的非规范化并尝试实现良好的缓存设计....

你说你是mongodb的新手...所以会有一个学习曲线...... 放更多的公羊和cpus,直到你有数百万用户...

使用mongodb感觉安全,您将需要至少3台服务器

请同时查看此链接

is this the optimal minimum setup for mongodb to allow for sharding/scaling?

答案 3 :(得分:0)