Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何编写c查询来查找mongodb中的最大值和最小值_C#_Mongodb - Fatal编程技术网

C# 如何编写c查询来查找mongodb中的最大值和最小值

C# 如何编写c查询来查找mongodb中的最大值和最小值,c#,mongodb,C#,Mongodb,如何用c编写以下查询以查找最大值和最小值 db.col.find().sort({val: 1}).limit(1); //min db.col.find().sort({val: -1}).limit(1); //max 这就是我尝试的问题 var cursor = collection.FindAs<BsonDocument> (Query.Null).SetSortOrder(SortBy.Descending("_id"‌​)).SetLimit(1) .

如何用c编写以下查询以查找最大值和最小值

db.col.find().sort({val: 1}).limit(1); //min
db.col.find().sort({val: -1}).limit(1); //max
这就是我尝试的问题

var cursor = collection.FindAs<BsonDocument> 
    (Query.Null).SetSortOrder(SortBy.Descending("_id"‌​)).SetLimit(1)
    .SetFields(Fields.Exclude("_id"));

请帮助我继续。

您可以通过以下方式找到最小和最大文档:

var min = collection.FindAll().SetSortOrder(SortBy.Ascending("val")).SetLimit(1).FirstOrDefault();
var max = collection.FindAll().SetSortOrder(SortBy.Descending("val")).SetLimit(1).FirstOrDefault();
假设您的集合是MongoCollection类型,那么您的min和max变量是MongoCollection类型的文档

这是内部正在发生的事情:

FindAll返回一个MongoCursor SetSortOrder通过设置排序顺序来修改光标 SetLimit通过设置限制来修改光标 FirstOrDefault标准.NET LINQ方法在光标上枚举并返回唯一的文档
你使用ORM吗?请发布更多信息。@Cristian Chereches:是的,我正在使用ORM。这是我尝试的查询var cursor=collection.FindAsQuery.Null.setSortBy.Descending_id.SetLimit1.SetFieldsFields.Exclude_id;若要查找最大值但不获取结果,如果集合中有IEnumerable之类的所有实体,则可以使用collection.Minitem=>item.PropertyUsedToCompare,对于Max也是如此。这也可能有帮助
var sort =  Builders<BsonDocument>.Sort.Descending("columnName"); //build sort object   
var result = db.Find().Sort(sort).FirstOrDefault(); //apply it to collection