繁体   English   中英

MongoDB c#驱动程序排序和表达式查询

[英]MongoDB c# Driver Sorting and Expression query

我使用的是MongoDB C#驱动程序,并且想使用按表达式进行过滤和按字段名进行排序。 那就是我的实现:

List<OBJECT> result = collection.FindAll().SetSortOrder(SortFieldName).AsQueryable().Where(expression).ToList();

变量表达式是:

Expression<Func<OBJECT, bool>> expression

而SortFieldName是一个包含“名称”之类的字符串。

该命令无效,因为结果为null。 我怎么了

您不能将本机MongoDB查询与LINQ查询混合使用。 您必须完全以一种或另一种方式编写查询。 这是一些示例代码,显示了编写同一查询的两种方式:

collection.Insert(new C { Id = 1, X = 3 });
collection.Insert(new C { Id = 2, X = 2 });
collection.Insert(new C { Id = 3, X = 1 });

Console.WriteLine("Using MongoDB query:");
foreach (var document in collection.Find(Query.GT("X", 1)).SetSortOrder("X"))
{
    Console.WriteLine(document.X);
}
Console.WriteLine();

Console.WriteLine("Using LINQ:");
foreach (var document in collection.AsQueryable().Where(c => c.X > 1).OrderBy(c => c.X))
{
    Console.WriteLine(document.X);
}
Console.WriteLine();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM