使用 Mongoose $push 进入 Array Schema 类型

Using Mongoose $push into Array Schema type

我有以下用户和帖子模式,其中用户具有以下数据类型:

postCreated:{
    type: Array,
    default: []
}

帖子的服务器路由是:

server.post('/posts',(req,res,next) => {
    const {username,title,categories,content} = req.body;
    const post = new Posts({
        username,
        title,
        categories,
        content
    });
    post.save().then((doc) => {
        console.log(doc);
        res.send(doc);
        User.findOneAndUpdate({username}, {$push: {'postCreated': doc}});
    })
    .catch((e) => {
        return next(new errors.BadRequestError(e.message));
    });
});

将新创建的 post 保存到数据库中并更新用户架构中的 'postCreated' 属性。但是,我当前的代码不起作用,有什么办法可以将新创建​​的 post 推入 'Post Created' 数组?

感谢您的帮助。

看看这是否适合你:

server.post('/posts',(req,res,next) => {
    const {username,title,categories,content} = req.body;
    const post = new Posts({
        username,
        title,
        categories,
        content
    });
    return post.save()
      .then(doc => User.findOneAndUpdate({username}, {$push: {'postCreated': doc}})
        .then(() => res.send(doc)))
    .catch(e => {
        return next(new errors.BadRequestError(e.message));
    });
});

您缺少 post.saveUser.findOneAndUpdate 的 returns。另外,您的 res.send(doc) 可能应该是您函数中的最后一件事。