使用 .Net Driver 2 在 MongoDB 集合中查找最大值

hho*_*tij 7 .net c# mongodb mongodb-.net-driver

使用 1.10 版本的 .NET 驱动程序,我可以执行以下操作来获取 oplog 集合中的最大时间戳:

this.oplogCollection.AsQueryable<OplogEntry>().Max(o => o.ts);
Run Code Online (Sandbox Code Playgroud)

我怎样才能用新的驱动程序 2.0 做到这一点?该文档基本上不存在或没有帮助,所以我希望一些内部人士可以在这里有所启发。

D.R*_*ado 7

你可以试试这个:

var result = await collection.Find(x => true).SortByDescending(d => d.ts).Limit(1).FirstOrDefaultAsync();
Run Code Online (Sandbox Code Playgroud)

顺便说一句$max,不像在 Linq 或 SQL 中那样给你最大的价值,它指定了 a 的上限Find文档在这里


Jan*_*sis 6

编辑:不确定是否有更好的方法,但这有效。我还没有找到轻松实现 $max 运算符的方法。

var list = await collection.Aggregate().SortByDescending((a) => a["field"]).FirstAsync();
Run Code Online (Sandbox Code Playgroud)