mongoose mongo post挂钩聚合管道不工作

zdwk9cvp  于 2022-11-24  发布在  Go
关注(0)|答案(1)|浏览(114)

我正在做一个社会媒体和我有一个问题与2模式。用户和追随者。当一个用户追随另一个,一个新的文档被添加到追随者方法与谁dollows谁的信息。在文档被创建后,一个后挂钩运行一个静态函数与agregattion管道,计算追随者的追随者的追随者和追随者的追随者,并在修改它,直到它的权利,但当我试图做同样的用户unfollow其他,这个职位挂钩不正确的工作。
使用聚合管道的followerschema.statics函数:

followersschema.statics.AdjustFollowersFollowing = async function(FOLLOWEDID,FOLLOWINGID){
    try{const statsfollowedid = await this.aggregate([{ //THIS AGREGATION PIPELINE GETS THE EXACT NUMBER OF FOLLOWERS THAT THE FOLLOWED USER HAS
        $match: { followedid : FOLLOWEDID}
    },{
        $group: {
            _id: FOLLOWEDID,
            numFollowed: {$sum:1}
        }
    }]);

    const statsfollowingid = await this.aggregate([{//THIS AGREGGATION PIPELINE GETS THE EXACT NUMBER OF PERSON THAT FOLLOWS THE FOLLOWING USER 
        $match: { followingid : FOLLOWINGID}
    },{
        $group: {
            _id: FOLLOWINGID,
            numFollowing: {$sum:1}
        }
    }]);

    await User.findByIdAndUpdate({_id : FOLLOWEDID},{numfollowers:statsfollowedid[0].numFollowed})
    await User.findByIdAndUpdate({ _id : FOLLOWINGID},{numfollowing:statsfollowingid[0].numFollowing})
    }catch(err){
        console.log(err);
    }
    
    
}

我正在尝试为一个post挂钩创建一个聚集管道。findOneAndRemove方法mongoose。首先我尝试在一个post挂钩上执行此操作。(相同的代码在挂钩上工作。pre('save)
this._conditions在删除前获得的信息

followersschema.post('findOneAndRemove',function(){ 
    console.log(this._conditions.followedid); console.log(this._conditions.followingid)                                                                                                    //execute function for AdjustFollowersFollowing of both users after unfollow
    this.constructor.AdjustFollowersFollowing(this._conditions.followedid,this._conditions.followingid) 
});

我得到的错误消息是:
类型错误:此.构造函数. AdjustFollowersFollow不是函数
向上也是我所尝试的
我接下来要做的是

hfsqlsce

hfsqlsce1#

尝试使用一些节点包,比如expressjs,express有一些函数可以用来解决你问题。你可以在终端中运行这个来安装:
npm init -y
npm -i express

相关问题