使用mongodb c#驱动程序获取总和

本文关键字:获取 驱动程序 mongodb 使用 | 更新日期: 2023-09-27 18:12:10

我有以下mongodb查询,在shell中工作良好

db.twitterStats.aggregate([{$group:{_id:0,total:{$sum:"$TwitterHashTagCount"}}},{"$project":{"_id":0,"total":1}}])

我试图做同样的事情在c#使用mongodb c#驱动程序,我有以下代码到目前为止:

public IMongoCollection<Stat> Stats
    {
        get { return _database.GetCollection<Stat>(StatsCollectionName); }
    }
 var agg = Stats.Aggregate()
            .Group("{_id:0,total:{$sum:'$TwitterHashTagCount'}}")
            .Project("{'"_id'":0,'total':1}");

如何从agg对象中获得total的值?

伊斯梅尔

使用mongodb c#驱动程序获取总和

因此,为了回答我自己的问题,经过一些修改,我现在有

            var agg = Stats.Aggregate<Stat>()
                        .Group(new BsonDocument 
                                    { 
                                        { "_id", 0
                                        }, 
                                        { 
                                            "total", new BsonDocument 
                                                         { 
                                                             { 
                                                                 "$sum", "$TwitterHashTagCount" 
                                                             } 
                                                         } 
                                        } 
                                    })
                        .Project(new BsonDocument 
                                    { 
                                        {"_id", 0},                            
                                        {"total", 1}, 
                                    });
        var doc = agg.SingleAsync();
        BsonDocument result = doc.Result;
        return result.GetValue("total").AsInt32;
作品