MongoDB 如何使用 C# 驱动程序在一个查询中进行多个聚合?

RPM*_*984 5 c# mongodb faceted-search aggregation-framework

我的数据模型如下所示:

{
    "ListingId": 1,
    "Status": "Current",
    "Category": "Rental"
}
Run Code Online (Sandbox Code Playgroud)

我有大约 500 万个文档,并希望在“状态”和“类别”字段上运行聚合,因此我可以生成如下输出:

{
   "Statuses": 
   {
      "Current": 100, // count of all documents with 'Status' = 'Current'
      "Sold": 12 // count of all documents with 'Status' = 'Sold'
      // etc
   },
   "Categories": 
   {
      "Sale": 120,
      "Rental": 12
      // etc
   }
}
Run Code Online (Sandbox Code Playgroud)

基本上,我想返回数据以支持“分面搜索”UI,因此我需要所有方面的计数,并且我想在一次访问 MongoDB 的过程中完成。

我已经阅读了一天左右的聚合和构面,但我仍然感到困惑。

问题:

  1. 鉴于我的场景和集合大小,我应该在这里使用什么?方面还是聚合?
  2. 我如何在最新的 C# 驱动程序中做到这一点?

相关问题(我无法转换为我的情况/代码):

小智 0

您可以通过稍微不同的方式通过如下所示的聚合来获取这些数据。尝试如下我的屏幕截图中的方面代码。如果需要更多帮助,请告诉我。

多面结果

您可以导出相同的管道并将其放入您的 C# 代码中。