我可以用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 )            

            })

当我try 使用$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表示法指定,带有{}个大括号.

Mongodb相关问答推荐

基于另一子文档更改子文档的引用

MongoDB:检测所有重叠事件(开始/结束日期)?

我无法在react 中使用 fetch 和express 从数据库中删除数据

从 kubectl exec 获取返回值到 powershell 脚本

Mongo 删除最后的文件

NodeJS + MongoDB:使用 findOne () 从集合中获取数据

查找对象是否在预保存钩子mongoose中更改

如何使用 C# MongoDB 驱动程序检索字段子集?

Springboot 使用 find*() 查询时出现 Mongodb 错误

NoSql 参考数据

Clojure 和 NoSQL 数据库

在 mongodb 的一次更新调用中推送到两个单独的数组

如何将 mongoDB 数据导出为 CSV 格式?

有没有办法自动更新 MongoDB 中的两个集合?

Mongoimport json 文件更新或覆盖..?

Spring Data MongoDB 中的独特之处

使用 Java 驱动程序更新 MongoDB 中的数组

判断 mongoDB 是否连接

如何通过键名从 mongoDB 中检索值?

未找到 MongoDB 数据/数据库