我在使用平均堆栈的情况下问了这个问题。(这可能是天真的问题,因为我是新的Mean Stack)我已经看到使用猫鼬映射mongodb到对象的例子。我想知道这样做的好处。
在我的理解,有保存一个blob的json到mongodb的好处,而不用担心数据的模式。然后你有你的Angular客户端应用(单点)来定义和使用数据对象。这对我来说似乎已经是一个有效的/好的应用程序。
那么为什么猫鼬方法?这不是冲突吗?您的客户端已经知道数据模型,因此要将其呈现给用户,为什么要在服务器(express)端再次定义它(猫鼬对象映射)?
我没有完全理解你的问题,但我希望这有助于,正如@Wasiq正确指出的那样,Mongoose是一个ODM,因为它提供了Nodejs(后端)和数据库(MongoDB)之间的中间件。我们为什么要用它?
1)原因之一是:它定义了模式(集合中的文档结构和模型用于创建将存储在文档中的数据实例)。由于MongoDB是NOSQL,所以它是模式自由的。对于传统dbs的开发人员来说,这是一个很大的帮助。
2) Mongoose for MongoDB最好的一点是,你可以内置自动验证你插入/更新的数据。
或者你可以使用Node Driver来编写你的查询,这样你就不用担心你的模式是否改变了。
Mongoose是一个支持NodeJs
的Object Data Modeling
,通过它我们连接到mongodb。在服务器端,您希望以更有组织和结构化的方式查询mongo
。Mongose具有限制数据冗余的模式和模型,与本地mongo
驱动程序相比,ODM
有许多可用的用途,可以使用不同的monk
等。
在Angular中,我们让service与我们的服务器通信,它不关心数据模型,因为我们知道request
和response
将接收。