【问题标题】:Get MongoDb results and count of aggregation using C# driver使用 C# 驱动程序获取 MongoDb 结果和聚合计数
【发布时间】:2019-09-03 01:08:36
【问题描述】:

我正在使用聚合进行查询和查找。使用一个服务器调用同时返回结果和计数的最有效方法是什么?

我已经看到有一种方法可以做到这一点using Facets,但是,我想使用具有类型化类的 Fluent 表达式来做到这一点,这样我就可以将逻辑抽象为通用扩展方法。

我当前的代码如下所示:

collection
  .Aggregate ()
  .Match (Builders<Order>.Filter...)
  .Lookup (...)
  .Project<Order> (Builders<Order>.Projection.Exclude ...)

【问题讨论】:

    标签: mongodb mongodb-.net-driver mongodb-csharp-2.0


    【解决方案1】:

    我相信您正在寻找$group 运算符。

    collection
    .Aggregate ()
    .Match (Builders<Order>.Filter...)
    .Lookup (...)
    .Project<Order> (Builders<Order>.Projection.Exclude ...)
    .Group(x => x.OrderId, g => new { ResultCount = g.Count(), Data = g.Select(x => new Order { SomeOrderProperty = x.AnotherOne}).ToList() }).FirstOrDefault();
    

    这将为您提供一个匿名对象,其中包含您的计数并产生一个。我不知道你的实体长什么样,所以我假设了一些名字,但你应该能够从中推断出来。

    【讨论】:

      猜你喜欢
      • 2015-06-07
      • 1970-01-01
      • 1970-01-01
      • 2020-06-21
      • 1970-01-01
      • 1970-01-01
      • 2019-08-03
      • 2020-10-09
      • 1970-01-01
      相关资源
      最近更新 更多