我有以下Mongodb脚本,但想用C#编写它们,有人可以帮我把它们翻译成C#尽可能简单。我正在使用mongodb C#驱动程序。
查找集合中字段的最大值并将其返回到变量
db.tblProduct.find().sort({"ThrowNo":1/-1}).limit(-1)
找到最小值:
db.tblProduct.find().sort({"ThrowNo":1/1}).limit(-1)
如果ThrowNo
是日期时间,我将如何处理转换不同的数据类型。
谢谢你的帮助!
答案 0 :(得分:0)
不确定如何翻译脚本,但
db.tblProduct.OrderBy(p => p.ThrowNo).First();
和
db.tblProduct.OrderByDescending(p => p.ThrowNo).First();
将返回具有最低和最高ThrowNo
值的实体。
答案 1 :(得分:0)
下面的方法对给定的集合进行排序,之后您需要应用第一个函数
public ICollection<T> getSortedData(ICollection<T> collection, string property, string direction)
{
switch (direction.Trim())
{
case "asc":
collection = ((from n in collection
orderby
n.GetType().GetProperty(property).GetValue(n, null)
select n).ToList<T>()) as ICollection<T>;
break;
case "desc":
collection = ((from n in collection
orderby
n.GetType().GetProperty(property).GetValue(n, null)
descending
select n).ToList<T>()) as ICollection<T>;
break;
}
return collection;
}
var firstProduct = getSortedData(products,"ThrowNo","desc").first<Product>();
答案 2 :(得分:0)
collection.OrderBy(item => item.ThrowNo)
使用Linq,它需要加载所有文档,然后在内存中设置顺序
与c#匹配的确切代码类似于:
collection.FindAll().SetSortOrder(SortBy.Ascending("ThrowNo")).SetLimit(-1);