MongoDB LINQ:在不支持的地方用谓词计数?

MongoDB LINQ: Count with predicate inside Where not supported?

我有一组文档,看起来有点像:

{
  "_id": {
    "$oid": "620d91300adfc5baaafc3006"
  },
  "Results": [
    {
      "LabelIndex": 18,
      "Label": "modal",
      "Probability": 2.264034495769797e-26
    },
    {
      "LabelIndex": 10,
      "Label": "galaxy",
      "Probability": 2.4459039011662245e-34
    }
  ]
}

我想通过以下查询使用 LINQ 查询此集合:

var results = documents
    .Where(x => x.Results.Count(y => y.Probability > .7) > 1)
    .ToList();

但是这会导致:

InvalidOperationException
Count({document}{Results}.Where(({document}{Probability} > 0.7))) is not supported. 

我做错了什么?

我直觉认为 LINQ 提供程序没有使用聚合管道,所以我将查询重写为:

var results = mcips
    .Select(x => new
    {
        Image = x.Image,
        Results = x.Results.Where(y => y.Probability > .7)
    })
    .Where(x => x.Results.Count() > 1)
    .ToList();

这行得通,但如果能理解 为什么 原来的查询行不通,以及是否有更简单的方法来解决这个问题,还是很好理解的。