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

マングースの2つの異なるフィールドに一致しますか?

    次の集計を使用できます:

    db.col.aggregate([
        {
            $addFields: {
                weightedIds: {
                  $map:
                     {
                       input: "$weighted",
                       as: "w",
                       in: "$$w.phaseId"
                     }
                }
            }
        },
        {
          $project: {
            _id: 1,
            weighted: 1,
            phases: {
                $filter: {
                 input: "$phases",
                 as: "phase",
                 cond: { $gte: [ { $indexOfArray: [ "$weightedIds" , "$$phase._id" ] }, 0 ] }
                }
            }
          }
        }
    ])
    

    $mapを使用しています phaseIdのみを取得する weightedのフィールド 次に、phasesを除外できます $filter を使用する 対応するidかどうかを各フェーズでチェックします 存在します( $indexOfArray を使用 それ以外の場合は-1を返します)




    1. MongoDB Aggregation:個別のフィールドをカウントする

    2. Hadoopの分散キャッシュの概要

    3. マングース-基準によるサブドキュメントの検索

    4. Redis対Memcached