📜  使用Mongoose模块有什么好处?

📅  最后修改于: 2022-05-13 01:56:24.274000             🧑  作者: Mango

使用Mongoose模块有什么好处?

Mongoose模块是 NodeJS 最强大的外部模块之一。 Mongoose是一个 MongoDB ODM 即(对象数据库建模),用于将代码及其表示从 MongoDB 转换到 Node.js 服务器。

Mongoose模块的优点:

  1. MongoDB 数据库的集合验证可以轻松完成。
  2. 可以在集合上实现预定义结构。
  3. 可以使用Mongoose将约束应用于集合文档。
  4. Mongoose模块构建在 MongoDB 驱动程序之上,提供轻松的查询抽象和定义查询。

许多习惯使用 SQL 的开发人员在 MongoDB 上工作时会感到不舒服,因为 Nosql 数据库和灵活的结构在这里Mongoose起着重要作用,并使集合模式类似于 SQL 数据库。

Mongoose模块提供了几个函数来操作 MongoDB 数据库集合的文档。

明确结构和集合验证的实现: mongoose模块对集合施加了明确的结构,并使集合变得僵化。

安装模块:

npm install mongoose

项目结构:

在本地 IP 上运行服务器:数据是 MongoDB 服务器所在的目录。

mongod --dbpath=data --bind_ip 127.0.0.1

文件名- index.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)
})


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,
    unique: true,
    require: true
  }
  ,
  marks: {
    type: Number,
    default: 0
  }
})
  
// Creating collection
const collections = mongoose.model("GFG2", collection_structure)
  
// Inserting one document
collections.create({
  name: "aayush",
  marks: 12,
}).then((ans) => {
  console.log("Document inserted")
  // Inserting invalid document
}).catch((err) => {
  console.log(err.message);
})


使用以下命令运行index.js文件:

node index.js

输出:

MongoDB集合约束的实现:

文件名- index.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,
    unique: true,
    require: true
  }
  ,
  marks: {
    type: Number,
    default: 0
  }
})
  
// Creating collection
const collections = mongoose.model("GFG2", collection_structure)
  
// Inserting one document
collections.create({
  name: "aayush",
  marks: 12,
}).then((ans) => {
  console.log("Document inserted")
  // Inserting invalid document
}).catch((err) => {
  console.log(err.message);
})

使用以下命令运行index.js文件:

node index.js

输出:[第一条记录已存在于集合中]