Apabila menggunakan nod untuk mempraktikkan projek blog, artikel perlu dikaitkan dengan pengguna, kategori dan koleksi ulasan, jadi saya menggunakan pertanyaan populasi mongoose, tetapi ia tidak dapat mengembalikan data yang diingini adalah seperti berikut:
Simpan artikel:
// 拿到session中的用户信息
let authorObj = {author: ObjectId(req.session.userInfo.userID)};
let cateObj = {category: ObjectId(req.body.category)};
// 增加到数据中
postData = Object.assign(req.body,authorObj,cateObj);
// 添加新数据
postModel.create(postData)
.then((result)=>{
if(!result){
reMessage.msg='文章保存错误';
reMessage.code=2003;
res.send(reMessage);
return;
}
reMessage.msg='文章发表成功';
reMessage.code=0;
res.send(reMessage);
});
Data pemulangan:
postModel.find({})
.populate({path:'users',select:'username'})
.then((data)=>{
console.log(data);
res.render('admin/posts-list',{
login:req.session.login,
userInfo:req.session.userInfo,
fields:['标题','作者','分类','发表时间'],
datas:data
});
});
Kod khusus adalah seperti di atas, mengapa ia tidak berfungsi?
Selesai, ia adalah ralat rujukan medan semasa membuat Skema Parameter pertama userModel = db.model('user',suerSchema) harus dirujuk dan bukannya userModel
.