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

MongoDbのアグリゲーションで条件付きでアンワインドしますか?

    aggregateを呼び出す前に、プログラムで集約パイプラインを構築します :

    var pipeline = [];
    pipeline.push(
        {   // SELECT
        $project : { "sex" : 1,
                 "salesIndex":1
                }
        },
        {   // WHERE
            $match: {"salesIndex": {$gte: index}}
        }
    );
    if (filteringByDepartment) {
        pipeline.push(
            { $unwind: '$departments' },
            { $match: { departments: departmentId }}
        );
    }    
    pipeline.push(
        {   // GROUP BY y agregadores
            $group: {
                _id      : "$sex",
                sexCount : { $sum: 1 }
            }
        },
        { $sort: { sexCount: -1 } }
    );
    
    models.Users.aggregate(pipeline, function(err, dbres) {
        //...
    });
    



    1. SpringセッションデータRedis-有効なセッション、現在のユーザーをRedisストアから取得

    2. 引数はnodejsの文字列である必要があります

    3. マングースはデータベースに複数のアイテムを追加します

    4. 配列mongodbc#ドライバーのフィールドを更新します