Mongoose模块介绍
MongoDB是最流行的 NoSQL 数据库,是一个开源的面向文档的数据库。术语“NoSQL”的意思是“非关系的”。 MongoDB 为我们提供了灵活的数据库模式,它有自己的优点和缺点。 MongoDB 集合中的每条记录不依赖于基于结构的特定集合中存在的其他记录。我们可以根据需要在任何记录中添加任何新的键。 MongoDB 集合和集合的约束没有适当的结构。让我们看一个例子。
MongoDB:
Database: GFG
Collection: GFG1
在上面的示例中,我们可以很容易地看到 MongoDB 中的集合没有合适的模式。我们可以在集合中使用任意数量的不同键和值。这种现象可能会造成一些麻烦。那么让我们看看如何克服这个问题。
Mongoose.module是 node.js 最强大的外部模块之一。 Mongoose是一个 MongoDB ODM(对象数据库建模),用于将代码及其表示形式从 MongoDB 转换到 Node.js 服务器。
Mongoose模块的优点:
- MongoDB 数据库的集合验证可以轻松完成。
- 可以在集合上实现预定义结构。
- 可以使用Mongoose将约束应用于集合文档。
Mongoose模块提供了几个函数来操作 MongoDB 数据库集合的文档(参考此链接)
Collection 明确结构的实现:
安装模块:
npm install mongoose
项目结构:
在本地 IP 上运行服务器:数据是 MongoDB 服务器所在的目录。
mongod --dbpath=data --bind_ip 127.0.0.1
索引.js
Javascript
// Importing mongoose module
const mongoose = require("mongoose")
// Database Address
const url = "mongodb://localhost:27017/GFG"
// Connecting to database
mongoose.connect(url).then((ans) => {
console.log("ConnectedSuccessful")
}).catch((err) => {
console.log("Error in the Connection")
})
// Calling Schema class
const Schema = mongoose.Schema;
// Creating Structure of the collection
const collection_structure = new Schema({
name: {
type: String,
require: true
},
marks: {
type: Number,
default: 0
}
})
// Creating collection
const collections = mongoose.model(
"GFG2", collection_structure)
// Inserting one document
collections.create({
name: "aayush"
}).then((ans) => {
console.log("Document inserted")
// Inserting invalid document
collections.create({
name: "saini",
marks: "#234",
phone: 981
}).then((ans) => {
console.log(ans)
}).catch((err) => {
// Printing the documents
collections.find().then((ans) => {
console.log(ans)
})
// Printing the Error Message
console.log(err.message)
})
}).catch((err) => {
// Printing Error Message
console.log(err.message)
})
使用以下命令运行index.js文件:
node index.js
控制台输出:
Mongoose模块对集合强加了明确的结构,使集合变得僵化。