【发布时间】:2019-05-27 07:22:12
【问题描述】:
我想在 MongoDB 中插入 1500000 个文档。首先,我查询一个数据库并从那里获取 15000 名教师的列表,我想为每个教师插入 100 门课程。
我运行了两个循环:首先它遍历所有讲师,其次,在每次迭代中,它将为该 ID 插入 100 个文档,如下面的代码所示:
const instructors = await Instructor.find();
//const insrtuctor contains 15000 instructor
instructors.forEach((insructor) => {
for(let i=0; i<=10; i++) {
const course = new Course({
title: faker.lorem.sentence(),
description: faker.lorem.paragraph(),
author: insructor._id,
prise: Math.floor(Math.random()*11),
isPublished: 'true',
tags: ["java", "Nodejs", "javascript"]
});
course.save().then(result => {
console.log(result._id);
Instructor.findByIdAndUpdate(insructor._id, { $push: { courses: course._id } })
.then(insructor => {
console.log(`Instructor Id : ${insructor._id} add Course : ${i} `);
}).catch(err => next(err));
console.log(`Instructor id: ${ insructor._id } add Course: ${i}`)
}).catch(err => console.log(err));
}
});
这是我的package.json 文件,我在其中放置了我在互联网上找到的东西:
{
"scripts": {
"start": "nodemon app.js",
"fix-memory-limit": "cross-env LIMIT=2048 increase-memory-limit"
},
"devDependencies": {
"cross-env": "^5.2.0",
"faker": "^4.1.0",
"increase-memory-limit": "^1.0.6",
}
}
这是我的课程模型定义
const mongoose = require('mongoose');
const Course = mongoose.model('courses', new mongoose.Schema({
title: {
type: String,
required: true,
minlength: 3
},
author: {
type: mongoose.Schema.Types.ObjectId,
ref: 'instructor'
},
description: {
type: String,
required: true,
minlength: 5
},
ratings: [{
user: {
type: mongoose.Schema.Types.ObjectId,
ref: 'users',
required: true,
unique: true
},
rating: {
type: Number,
required: true,
min: 0,
max: 5
},
description: {
type: String,
required: true,
minlength: 5
}
}],
tags: [String],
rating: {
type: Number,
min: 0,
default: 0
},
ratedBy: {
type: Number,
min: 0,
default: 0
},
prise: {
type: Number,
required: function() { this.isPublished },
min: 0
},
isPublished: {
type: Boolean,
default: false
}
}));
module.exports = Course;
【问题讨论】:
-
您的代码有不平衡的大括号和圆括号。
-
@trincot 它是代码的一部分,所以可能有不平衡的大括号,但它不会在那里抛出错误
-
当然可以,但是我们看不到您的“这里”,所以请努力至少使您的问题代码保持一致。
-
@trincot 好的,下次我会小心的
-
您可以点击“编辑”进行更正。
标签: javascript node.js mongodb express mongodb-query