2014-12-01 2 views
0

Мне нужно получить документ из коллекции в определенном месте - есть ли способ сделать это, или мне нужно добавить значение в структуру документа? Более конкретно, мне нужно, чтобы получить документ на основе случайного числа ... Что-то вроде этого ...Получить BsonDocument с определенным смещением

Random rand = new Random(); 
int randNumber = rand.Next(1, (int)bsonCollection.Count()); 

var document = bsonCollection.findDocumentAt(randNumber); 
//  the function I'm after^or equivilient 
+0

Я редактировал свой титул. Пожалуйста, смотрите: «Если вопросы включают« теги »в их названиях?] (Http://meta.stackexchange.com/questions/19190/), где консенсус« нет, они не должны ». –

+0

Хорошо, я не знал этого - спасибо за хедз-ап :) –

ответ

0

Edit: Я думаю, что это лучшее решение (я не знаю, о ElementAt, как я вам это никогда не понадобилось):

var document = bsonCollection.FindAll().ElementAtOrDefault(randNumber); 

Вы должны быть в состоянии достичь этого, пропустив курсор. Что-то вроде:

var cursor = bsonCollection.FindAll(); 
cursor.Skip = randNumber; 
var document = cursor.FirstOrDefault(); 

или слегка аккуратным:

var document = bsonCollection.FindAll().SetSkip(randNumber).FirstOrDefault(); 
+0

видимо, нет перегрузки для 'Find()' для принятия 0 аргументов? Итак, каков будет документ запроса? –

+0

@JSmith Это 'FindAll' – i3arnon

+0

отлично - спасибо! –

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