2013-02-20 1 views
0

Скажем, в Монго дб, у меня есть коллекции, как это:Как получить ряд документов, начиная от определенного документа в MongoDB

{_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) , который получает последние записи LIMIT, начиная с идентификатора документа в обратном порядке.

Как реализовать метод M?

Ex 1:

M(F, 4) returns 
{_id: "F", Value: "6"} 
{_id: "E", Value: "5"} 
{_id: "D", Value: "4"} 
{_id: "C", Value: "3"} 

Ex 2:

M(H, 2) returns 
{_id: "H", Value: "8"} 
{_id: "G", Value: "7"} 

Ex 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

Ваше обозначение немного сбивает с толку. Буквы, как представляется, являются значениями ID, но вы также показываете их как ключи в документах. Это поможет, если вы сможете обновить свой пример, чтобы быть действительным JSON. – JohnnyHK

+0

Обновленная нотация, предложенная вами. –

ответ

0

Вам нужно отфильтровать результаты _id, а также сортировка по убыванию по _id:

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

 Смежные вопросы

  • Нет связанных вопросов^_^