sql >> データベース >  >> NoSQL >> MongoDB

MongoDB-アグリゲーションパイプラインによるコメントの賛成/反対

    次のパイプライン更新でそれを行うことができますが、賛成票と反対票の配列が存在する必要があります。空でも。

    var comment_id = ObjectId("5e5983102328a83d1a4b541f");
    var user_id = ObjectId("5e5983102328a83d1a4b53e5");
    
    db.commentReputation.update(
        {
            commentId: comment_id
        },
        [
            {
                $set: {
                    upvotes: {
                        $cond: [
                            { $in: [user_id, '$upvotes'] },
                            { $setDifference: ['$upvotes', [user_id]] },
                            { $setUnion: ['$upvotes', [user_id]] }
                        ]
                    }
                }
            },
            {
                $set: {
                    downvotes: {
                        $cond: [
                            { $in: [user_id, '$downvotes'] },
                            { $setDifference: ['$downvotes', [user_id]] },
                            '$downvotes'
                        ]
                    }
                }
            }
        ]
    );
    



    1. 異なる値で複数のドキュメントを更新する方法

    2. パーソナライズされたFacebookのようなニュースフィードの構築:SQL、MongoDB?

    3. C#MongoDBドライバー-UpdateDefinitionBuilderの使用方法は?

    4. クラウドでのmongodb読み取り/書き込みパフォーマンスとmongoホスティング