我正在爬行数据,我想将这些数据插入monogdb怎么办?
- 这是抓取模块。 数据存储在"文档"中
module.exports = {
parseList(username,password) {
return new Promise((resolve, reject) => {
parseDKU.authenticateAndParse(username, password, 'https://webinfo.dankook.ac.kr/tiac/univ/lssn/ttmg/views/findTkcrsTmtblList.do?_view=ok&&sso=ok')
.then( $ => {
if ($('#tmtblDscAplListTbl')) {
var docs = [];
const selector = '#tmtblDscAplListTbl td';
const td = $(selector);
const tdLength = td.length/10;
for(let i =0; i < tdLength; i++){
var scoreInfo = {
stu_id: username,
course_code: ($(selector).eq(i * 10 + 1).text().trim()).concat('-'+$(selector).eq(i * 10 + 2).text().trim()),
course_name: $(selector).eq(i * 10 + 3).text().trim(),
prof_name: $(selector).eq(i * 10 + 6).text().trim()
}
docs.push(scoreInfo);
console.log(docs[i])
}
} else {
console.log('fail to Login')
}
})
})
}
}
- 这是MongoDB的连接,我想"文档"存储的数据插入到"分数发布"模式中,该怎么做?
var mongoose = require('mongoose');
var parseList = require('./parseList');
mongoose.connect('mongodb://localhost:27017/testDB');
var db = mongoose.connection;
db.on('error', function() {
console.log('Connection Failed');
});
db.once('open', function() {
console.log('Conneted!');
})
var scorerelease= mongoose.Schema({
stu_id : 'String',
course_code : 'String',
course_name : 'String',
// course_score : 'number',
prof_name : 'String',
})
}(
猫鼬连接应该在应用程序内.js文件和模型架构应该在 scoreRelease.js 文件中
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var ObjectId = mongoose.Schema.Types.ObjectId;
var scorerelease = mongoose.Schema({
stu_id : 'String',
course_code : 'String',
course_name : 'String',
// course_score : 'number',
prof_name : 'String',
})
var ScoreRelease = mongoose.model('Book', scoreReleaseSchema);
module.exports = ScoreRelease;
然后你可以使用 async/await 来存储这样的存储
module.exports = {
parseList(username, password) {
return new Promise(async (resolve, reject) => {
let result = await parseDKU.authenticateAndParse(
username,
password,
"https://webinfo.dankook.ac.kr/tiac/univ/lssn/ttmg/views/findTkcrsTmtblList.do?_view=ok&&sso=ok"
);
if (result("#tmtblDscAplListTbl")) {
var docs = [];
const selector = "#tmtblDscAplListTbl td";
const td = $(selector);
const tdLength = td.length / 10;
for (let i = 0; i < tdLength; i++) {
await ScoreRelease({
stu_id: username,
course_code: $(selector)
.eq(i * 10 + 1)
.text()
.trim()
.concat(
"-" +
$(selector)
.eq(i * 10 + 2)
.text()
.trim()
),
course_name: $(selector)
.eq(i * 10 + 3)
.text()
.trim(),
prof_name: $(selector)
.eq(i * 10 + 6)
.text()
.trim()
}).save();
docs.push(scoreInfo);
console.log(docs[i]);
}
} else {
console.log("fail to Login");
}
});
}
};