1

field1field2の2つのフィールドで文書をグループ化しようとしています。

myCollection.aggregate([{ 
    $group: { 
    _id: { 
     group1: "$field1", 
     group2: "$field2" 
    }, 
    count: { 
     $sum: 1 
    } 
    } 
}]) 

期待どおりの結果が得られます。

しかし、私は上記のループを実行したいと思いますが、それぞれの実行には異なる$field2がありますので、次は失敗します。どのようにすればいいですか?おかげ

const field3 = 'someValue'; // <<--- will change in every loop run --- 

myCollection.aggregate([{ 
    $group: { 
    _id: { 
     group1: "$field1", 
     group2: "$$field3" //<<---------------- 
    }, 
    count: { 
     $sum: 1 
    } 
    } 
}]) 

答えて

1

のために働く必要があり、以下のお

var field3 = 'someValue'; 
myCollection.aggregate([{ 
    $group: { 
    _id: { 
     group1: "$field1", 
     group2: "$" + field3, 
    }, 
    count: { 
     $sum: 1 
    } 
    } 
}])