如何使用Node.js创建多个Mongoose集合
Mongoose 是MongoDB的对象数据建模(ODM)库。它定义了一个具有默认值和模式验证的强类型模式,该模式随后映射到一个MongoDB文档中。
要使用Mongoose创建集合,您需要创建两个必要的内容:
- 模式: 它是一个包含属性及其类型(默认值,验证等,在需要时)的文档结构,以键值对的形式表示。
- 模型: 它是通过定义的模式创建的一个类,MongoDB文档是模型的实例。因此,它作为与MongoDB数据库交互的接口,用于创建、读取、更新和删除文档。
安装Mongoose:
步骤1: 您可以访问以下链接 安装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
}
步骤3: 使用mongoose可以轻松建立数据库连接,如下所示:
mongoose.connect('mongodb://localhost:27017/GFG',
{
useNewUrlParser: true,
useUnifiedTopology: true,
useFindAndModify: false
});
如果数据库GFG已存在,则建立连接,否则将创建第一个数据库并建立连接。在下面的图像中,最初我们有一个空的数据库GFG:
在所有集合中,创建您想要插入的数据对象,然后按照 main.js 文件中所示进行插入。一旦我们插入数据,我们的集合将自动创建。
步骤4: 在 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中创建了三个集合 课程,学生,教师。