如何使用 Node.js 制作Mongoose多个集合?
Mongoose是 MongoDB 的对象数据建模 (ODM) 库。它定义了一个强类型模式,具有默认值和模式验证,稍后将映射到 MongoDB 文档。
要使用Mongoose创建集合,您必须创建两个必要的东西:
- Schema:它是一个文档结构,包含作为键值对的属性及其类型(默认值、验证等)。
- 模型:它是在定义的 Schema 的帮助下创建的类,MongoDB 文档是模型的实例。因此,它充当 MongoDB 数据库的接口,用于创建、读取、更新和删除文档。
安装Mongoose:
第 1 步:您可以访问链接 Install mongoose来安装mongoose模块。您可以使用此命令安装此软件包。
npm install mongoose
第 2 步:现在您可以使用以下命令在文件中导入mongoose模块:
const mongoose = require('mongoose');
执行:
第 1 步:创建一个文件夹并将model.js和main.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
输出:我们可以在控制台看到所有数据都保存成功了。
数据库:现在我们可以看到在我们的数据库 GFG 中创建了三个集合课程,学生,教师。