簡體   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