C# 如何编写c查询来查找mongodb中的最大值和最小值
如何用c编写以下查询以查找最大值和最小值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) .
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