📜  Mongoose模块介绍

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

Mongoose模块介绍

MongoDB是最流行的 NoSQL 数据库,是一个开源的面向文档的数据库。术语“NoSQL”的意思是“非关系的”。 MongoDB 为我们提供了灵活的数据库模式,它有自己的优点和缺点。 MongoDB 集合中的每条记录不依赖于基于结构的特定集合中存在的其他记录。我们可以根据需要在任何记录中添加任何新的键。 MongoDB 集合和集合的约束没有适当的结构。让我们看一个例子。

MongoDB:

Database: GFG
Collection: GFG1

在上面的示例中,我们可以很容易地看到 MongoDB 中的集合没有合适的模式。我们可以在集合中使用任意数量的不同键和值。这种现象可能会造成一些麻烦。那么让我们看看如何克服这个问题。

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

Mongoose模块的优点:

  1. MongoDB 数据库的集合验证可以轻松完成。
  2. 可以在集合上实现预定义结构。
  3. 可以使用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模块对集合强加了明确的结构,使集合变得僵化。