mongoDB中如何判断一个序列的所有元素是否满足一个条件

In mongoDB how to determines whether all elements of a sequence satisfy a condition

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

Query.ElemMatch("Prices", Query.GTE("Value", criteria.MinPrice))

任何建议都会被接受。 (mongo 脚本,...)

您可以使用 Query.Not 来确保其中 none 不满足相反的条件,而不是测试每个元素是否都匹配条件。

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

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

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

如果 Prices 可能为空,您可能希望排除这些文档

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