类似于关系数据库命令的 Mongoose 命令
Mongoose commands analogous to relational database commands
我对 Mongoose 中的架构、模型、模型实例和集合感到很困惑。
我的理解如下:
- Mongoose.schema( { } ) - 类似于在关系数据库
中定义 table 的列
- Mongoose.model( 'Name', Schema) - 类似于在关系数据库中创建 table (创建 table 语句)
- new Model ({ //DATA }) - 类似于在关系数据库中创建一行
- new Model().query() - 类似于关系数据库中的查询语句(general Query)
这是正确的吗?
你基本上是对的。
首先,MongoDB 本质上是非结构化的,因此我建议不要试图找到 "analogies" 来将其与结构化方案相匹配。鉴于上述相似之处确实存在,因此为简单起见,我们可以这样做。
另外请注意,您所指的语法是 mongoose
,而不是原始的 Mongo
语法。
Mongoose.schema( { } )
是的,mongoose 使您能够 "force" 一个结构,注意这只会在尝试 insert
/[=14 时发挥作用=]/update
文档而不是在查询时。
Mongoose.model('Name', Schema)
是的,mongoose 本身不会创建数据库,这意味着如果它不存在,将创建一个新的数据库,但是将文档插入该模型将创建一个这样的集合。
new Model ({ //DATA })
可以,但是需要加new Model().save()
,不保存不会触发保存到数据库
new Model ().query()
是的,再次类似于 model
函数,这是一个猫鼬包装器(我不太熟悉)如 docs:
Query constructor used for building queries. You do not need to instantiate a Query directly. Instead use Model functions like Model.find().
我个人只是使用模型函数来查询 find
、findOne
、aggregate
等。
我对 Mongoose 中的架构、模型、模型实例和集合感到很困惑。
我的理解如下:
- Mongoose.schema( { } ) - 类似于在关系数据库 中定义 table 的列
- Mongoose.model( 'Name', Schema) - 类似于在关系数据库中创建 table (创建 table 语句)
- new Model ({ //DATA }) - 类似于在关系数据库中创建一行
- new Model().query() - 类似于关系数据库中的查询语句(general Query)
这是正确的吗?
你基本上是对的。
首先,MongoDB 本质上是非结构化的,因此我建议不要试图找到 "analogies" 来将其与结构化方案相匹配。鉴于上述相似之处确实存在,因此为简单起见,我们可以这样做。
另外请注意,您所指的语法是 mongoose
,而不是原始的 Mongo
语法。
Mongoose.schema( { } )
是的,mongoose 使您能够 "force" 一个结构,注意这只会在尝试insert
/[=14 时发挥作用=]/update
文档而不是在查询时。Mongoose.model('Name', Schema)
是的,mongoose 本身不会创建数据库,这意味着如果它不存在,将创建一个新的数据库,但是将文档插入该模型将创建一个这样的集合。new Model ({ //DATA })
可以,但是需要加new Model().save()
,不保存不会触发保存到数据库new Model ().query()
是的,再次类似于model
函数,这是一个猫鼬包装器(我不太熟悉)如 docs:
Query constructor used for building queries. You do not need to instantiate a Query directly. Instead use Model functions like Model.find().
我个人只是使用模型函数来查询 find
、findOne
、aggregate
等。