aggregation
を使用してサイトのすべての統計情報を取得できますが、$where
などの特定のユーザーに対して取得したいと思います。
すべての統計:
games.aggregate([{
$group: {
_id: '$id',
game_total: { $sum: '$game_amount'},
game_total_profit: { $sum: '$game_profit'}}
}]).exec(function ( e, d ) {
console.log( d )
})
$match
演算子を使用しようとすると、エラーが発生します:
games.aggregate([{
$match: { '$game_user_id' : '12345789' },
$group: {
_id: '$id',
game_total: { $sum: '$game_amount'},
game_total_profit: { $sum: '$game_profit'}}
}]).exec(function ( e, d ) {
console.log( d )
})
Arguments must be aggregate pipeline operators
何が足りないのですか?
パイプラインステージは、アレイ内の個別のBSONドキュメントです。
games.aggregate([
{ $match: { 'game_user_id' : '12345789' } },
{ $group: {
_id: '$id',
game_total: { $sum: '$game_amount'},
game_total_profit: { $sum: '$game_profit'}}
}}
]).exec(function ( e, d ) {
console.log( d )
});
したがって、JavaScriptの配列または[]
角かっこ表記は、「リスト」が提供されることを期待していることを意味します。これは、通常、{}
中括弧を使用してJSON表記で指定される「ドキュメント」のリストを意味します。