Javascript 不理解猫鼬模型?

Javascript 不理解猫鼬模型?,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我目前正在学习均值叠加,在我的研究中,我目前正在研究猫鼬 我在理解以下模型的用途时遇到了一个问题: var-campgroundSchema=newmongoose.Schema({ 名称:String, 图像:字符串 }); var Campground=mongoose.model(“Campground”,campgroundSchema)即使MongoDB是一个NOSQL数据库,您也需要在设计中使用模式,因为您可以有一个结构。它是一个对象,用于定义将存储在MongoDB集合中的任何文档

我目前正在学习均值叠加,在我的研究中,我目前正在研究猫鼬

我在理解以下模型的用途时遇到了一个问题:

var-campgroundSchema=newmongoose.Schema({
名称:String,
图像:字符串
});

var Campground=mongoose.model(“Campground”,campgroundSchema)即使MongoDB是一个NOSQL数据库,您也需要在设计中使用模式,因为您可以有一个结构。它是一个对象,用于定义将存储在MongoDB集合中的任何文档的结构;它使您能够为所有数据项定义类型和验证器


在上述
营地中
是您为可用于执行crud操作的模型指定的名称

MongoDB是一个NoSQL数据库,这意味着存储在数据库中的文档(它们的记录术语)与SQL数据库不同,是非结构化的。没有固定列集。MongoDB用例的一个很好的例子是,如果您正在为社交媒体(如Facebook)存储数据,其中关于用户的数据可以采用多种形式

但是,它缺乏执行任何数据验证或为其文档提供某种形式的结构的能力。如果说你有一个接受食物订单的web服务,而黑客设法找出如何发送请求进行食物订单,并决定添加另一个在你的集合中不存在的属性(相当于SQL的表),那么他/她将能够这样做,因为MongoDB具有灵活性

猫鼬解决了这个问题。它允许您定义一种称为模式的东西,它为集合中的数据的外观提供了一个主干。您还可以使用模式来限制数据类型,设置存储数据时所需的字段,以及使用此工具的更多功能。副作用是,您可以在一个包中获得数据验证和数据结构


如果您没有使用Mongoose,那么您必须自己编写所有验证代码。但是,请记住,mongoose不仅仅是一个验证和模式工具。它还包含许多其他功能,例如对返回的数据进行排序。可以将其视为MongoDB的一个附加组件,以使其更易于使用。

您不“需要”模式,您可以通过mongoose选择使用一个模式,尽管我从未说过它是强制性的,可能需要编辑,我的意图是说它有一个定义的结构OK我想我现在明白了。感谢@DominicTobias和Sajeet的评论。有些人觉得使用模式更舒服,如果你的数据不是很动态,那么它可以在数据进入之前提供一些关于转换和验证数据的现成信息。但是,您可以选择直接使用mongodb节点模块,而不使用模式。模式是在你的节点应用程序中强加的,而不是数据库本身。这就是我一直在寻找的答案。这解释了一切。谢谢