📌  相关文章
📜  如何使用 Node.js 制作Mongoose多个集合?

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

如何使用 Node.js 制作Mongoose多个集合?

Mongoose是 MongoDB 的对象数据建模 (ODM) 库。它定义了一个强类型模式,具有默认值和模式验证,稍后将映射到 MongoDB 文档。

要使用Mongoose创建集合,您必须创建两个必要的东西:

  1. Schema:它是一个文档结构,包含作为键值对的属性及其类型(默认值、验证等)。
  2. 模型:它是在定义的 Schema 的帮助下创建的类,MongoDB 文档是模型的实例。因此,它充当 MongoDB 数据库的接口,用于创建、读取、更新和删除文档。

安装Mongoose:

第 1 步:您可以访问链接 Install mongoose来安装mongoose模块。您可以使用此命令安装此软件包。

npm install mongoose

第 2 步:现在您可以使用以下命令在文件中导入mongoose模块:

const mongoose = require('mongoose');

执行:

第 1 步:创建一个文件夹并将model.jsmain.js文件添加到其中。

  • model.js:它包含您要创建的所有集合的模式模型,然后我们将导出所有创建的模型,以便可以将它们导入到我们将在其中创建集合的文件中。
  • main.js:这是我们将数据插入到集合中的主服务器文件。

第 2 步:model.js文件中写下以下代码。

model.js
// Requiring module
const mongoose = require('mongoose');
  
// Course Modal Schema
const courseSchema = new mongoose.Schema({
    _id: Number,
    name: String,
    category: String
});
  
// Student Modal Schema
const studentSchema = new mongoose.Schema({
    name: String,
    enroll: Number,
    courseId: Number
});
  
// Teacher Modal Schema
const teacherSchema = new mongoose.Schema({
    name: String,
    teacher_id: Number,
    courseId: Number
})
  
// Creating model objects
const Course = mongoose.model('course', courseSchema);
const Student = mongoose.model('student', studentSchema);
const Teacher = mongoose.model('teacher', teacherSchema);
  
// Exporting our model objects
module.exports = {
    Student, Course, Teacher
}


main.js
const mongoose = require('mongoose');
const { Student, Course, Teacher } = require('./model.js');
  
// Connecting to database
mongoose.connect('mongodb://localhost:27017/GFG',
    {
        useNewUrlParser: true,
        useUnifiedTopology: true,
        useFindAndModify: false
    });
  
// Creating array of course data object
const courseData = [{
    _id: 01,
    name: "NodeJS",
    category: "Backend"
},
{
    _id: 02,
    name: "MongoDB",
    category: "Database"
}]
  
// Creating array of student data objects
const studentData = [{
    name: "John",
    enroll: 1801,
    courseId: 01
}]
  
// Creating array of teacher data object
const teacherData = [{
    name: "TeacherX",
    teacher_id: 9901,
    courseId: 01
},
{
    name: "TeacherY",
    teacher_id: 9902,
    courseId: 02
}]
  
// Inserting course data
Course.insertMany(courseData)
    .then(value => {
        console.log("Saved Successfully");
    })
    .catch(error => {
        console.log(error);
    })
  
// Inserting student data
Student.insertMany(studentData)
    .then(value => {
        console.log("Saved Successfully");
    })
    .catch(error => {
        console.log(error);
    })
  
// Inserting teacher data
Teacher.insertMany(teacherData)
    .then(value => {
        console.log("Saved Successfully");
    })
    .catch(error => {
        console.log(error);
    })


第 3 步:可以使用mongoose轻松建立数据库连接,例如:

mongoose.connect('mongodb://localhost:27017/GFG',
{  
   useNewUrlParser: true,  
   useUnifiedTopology: true,  
   useFindAndModify: false
});

如果数据库 GFG 已经存在,则将建立连接,否则将创建第一个数据库并建立连接这里最初我们有一个空数据库 GFG,如下图所示:

最初数据库为空

为所有集合创建要插入的数据对象,然后插入,如main.js文件中所示。一旦我们插入数据,我们的集合就会自动创建。

第四步:写下以下代码 main.js文件。

main.js

const mongoose = require('mongoose');
const { Student, Course, Teacher } = require('./model.js');
  
// Connecting to database
mongoose.connect('mongodb://localhost:27017/GFG',
    {
        useNewUrlParser: true,
        useUnifiedTopology: true,
        useFindAndModify: false
    });
  
// Creating array of course data object
const courseData = [{
    _id: 01,
    name: "NodeJS",
    category: "Backend"
},
{
    _id: 02,
    name: "MongoDB",
    category: "Database"
}]
  
// Creating array of student data objects
const studentData = [{
    name: "John",
    enroll: 1801,
    courseId: 01
}]
  
// Creating array of teacher data object
const teacherData = [{
    name: "TeacherX",
    teacher_id: 9901,
    courseId: 01
},
{
    name: "TeacherY",
    teacher_id: 9902,
    courseId: 02
}]
  
// Inserting course data
Course.insertMany(courseData)
    .then(value => {
        console.log("Saved Successfully");
    })
    .catch(error => {
        console.log(error);
    })
  
// Inserting student data
Student.insertMany(studentData)
    .then(value => {
        console.log("Saved Successfully");
    })
    .catch(error => {
        console.log(error);
    })
  
// Inserting teacher data
Teacher.insertMany(teacherData)
    .then(value => {
        console.log("Saved Successfully");
    })
    .catch(error => {
        console.log(error);
    })

第 5 步:使用以下命令运行main.js文件:

node main.js

输出:我们可以在控制台看到所有数据都保存成功了。

执行 main.js 后的输出

数据库:现在我们可以看到在我们的数据库 GFG 中创建了三个集合课程,学生,教师

创建多个集合后的数据库