【发布时间】:2019-12-03 11:13:42
【问题描述】:
我一直在尝试在 mongoose 中使用填充,我目前的想法是检查 MongoDB 中是否存在特定文档,如果存在,则预保存钩子应该检查而不是创建一个新文档,它应该只是将它推送到 refs,以便我以后可以填充。
现在,ref 被保存在 MongoDB 中,但是,如何检查我要保存的文档是否在 mongo 中的 pre save(或任何其他更合适的方法)
这是架构。
var Userschmea = new mongoose.Schema({
user:String,
posts:[{
type:mongoose.Schema.Types.ObjectId,
ref:'Post'
}]
})
var PostSchema = new mongoose.Schema({
content:String,
author:[{
type:mongoose.Schema.Types.ObjectId,
ref:'Author'
}]
})
Userschmea.pre('save',(next)=>{
//what to do here
next()
})
var Post = mongoose.model('Post',PostSchema);
var User = mongoose.model('User',Userschmea);
这是我试图保存的端点:
app.post('/save/user',(req,res)=>{
console.log(req.body);
//Can i access this in my pre-save
const newUser = new User({
user: req.body.user
})
newUser.save((err)=>{
const newPost = new Post({
content:req.body.content,
author: newUser._id
})
newPost.save((err)=> {
if(err) {
return res.send(err);
}
})
if(err){
console.log(err);
return res.send(err);
}
})
return res.send(req.body.user);
})
【问题讨论】: