在mongoDB中如何确定一个序列的所有元素是否满足一个条件

本文关键字:一个 元素 是否 条件 满足 mongoDB 何确定 | 更新日期: 2023-09-27 18:07:59

"ElemMatch"测试数组中至少有一个项目与查询匹配。我只是想测试所有项目(如Enumerable)。All in LINQ

Query.ElemMatch("Prices", Query.GTE("Value", criteria.MinPrice))
任何建议都将被接受。

在mongoDB中如何确定一个序列的所有元素是否满足一个条件

您可以使用Query.Not来确保它们都不符合相反的条件,而不是测试每个元素是否符合条件。

。其中所有值均不小于criteria.MinPrice

Query.Not(Query.ElemMatch("Prices", Query.LT("Value", criteria.MinPrice)));

这种方法只有在你有一个一致的模式时才有效,其中Prices中的每个元素总是有Value,因为没有ValuePrices不会检查失败。

如果Prices可能是空的,你可能想要排除那些文档

Query.And(
    Query.Exists("Prices.0"),
    Query.Not(Query.ElemMatch("Prices", Query.LT("Value", criteria.MinPrice)))
);