让我们说,在mongo db中,我有一个这样的集合:
{_id: "A", Value: "1"}
{_id: "B", Value: "2"}
{_id: "C", Value: "3"}
{_id: "D", Value: "4"}
{_id: "E", Value: "5"}
{_id: "F", Value: "6"}
{_id: "G", Value: "7"}
{_id: "H", Value: "8"}
{_id: "I", Value: "9"}
我有一个名为M(ID,LIMIT)的方法,它以相反的顺序从文档ID开始获取最后的LIMIT记录。
如何实施方法M?
例1:
M(F, 4) returns
{_id: "F", Value: "6"}
{_id: "E", Value: "5"}
{_id: "D", Value: "4"}
{_id: "C", Value: "3"}
例2:
M(H, 2) returns
{_id: "H", Value: "8"}
{_id: "G", Value: "7"}
例3:
M(G, 6) returns
{_id: "G", Value: "7"}
{_id: "F", Value: "6"}
{_id: "E", Value: "5"}
{_id: "D", Value: "4"}
{_id: "C", Value: "3"}
{_id: "B", Value: "2"}
答案 0 :(得分:0)
您需要按_id
过滤结果,同时按_id
降序排序:
var cursor = test.FindAs<BsonDocument>(Query.LTE("_id", ID));
cursor.SetSortOrder(SortBy.Descending("_id"));
cursor.SetLimit(LIMIT);