失效链接处理 |
Mastering Mongoose Become a Full-Stack Mongoose Expert PDF 下载
本站整理下载:
相关截图:
主要内容:
1: Getting Started
1.1: What is Mongoose?
Mongoose is a object-document mapping (ODM) framework for Node.js and MongoDB. This
de¦nition is nuanced, so here's an overview of the core bene¦ts of using Mongoose.
Core Bene¦ts
Mongoose is built on top of the o¨cial MongoDB Node.js Driver, which this book will refer to as
just "the driver". The driver is responsible for maintaining a connection to MongoDB and
serializing commands into MongoDB's wire protocol. The driver is an rapidly growing project and it
is entirely possible to build an application without Mongoose. The major bene¦ts of using
Mongoose over using the driver directly are:
Application-level schema validation: Mongoose can validate that untrusted data coming in
over the network conforms to a declarative schema.
Models: Model-View-Controller (MVC) architecture enjoys widespread adoption. Mongoose
models make it easy to write MongoDB code using standard MVC practices.
Change tracking: Mongoose converts vanilla JavaScript assignments into MongoDB atomic
operations.
Middleware: Mongoose middleware helps you handle cross cutting concerns. Instead of
adding a log statement every time you call save(), you can put a single log statement in
pre('save').
Plugins: Mongoose has a robust plugin architecture and an active community. As of early
2020, there are over 3000 modules on npm with "mongoose" as a keyword.
In order to clarify what Mongoose is, let's take a look at how Mongoose differs from other
modules you may have used.
ODM vs ORM
Mongoose is an ODM, not an ORM (object-relational mapping). Some common ORMs are
ActiveRecord, Hibernate, and Sequelize. Here's the key difference between ORMs and ODMs:
ORMs store data in relational databases, so data from one ORM object may end up in multiple
rows in multiple tables. In other words, how your data looks in JavaScript may be completely
different from how your ORM stores the data.
MongoDB allows storing arbitrary objects, so Mongoose doesn't need to slice your data into
different collections. Like an ORM, Mongoose validates your data, provides a middleware
framework, and transforms vanilla JavaScript operations into database operations. But unlike an
ORM, Mongoose ensures your objects have the same structure in Node.js as they do when they're
stored in MongoDB.
|