如何从mongodb中的某个文档开始获取大量文档

时间:2013-02-20 13:30:05

标签: mongodb mongodb-.net-driver mongodb-query

让我们说,在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"}

1 个答案:

答案 0 :(得分:0)

您需要按_id过滤结果,同时按_id降序排序:

var cursor = test.FindAs<BsonDocument>(Query.LTE("_id", ID));
cursor.SetSortOrder(SortBy.Descending("_id"));
cursor.SetLimit(LIMIT);