2014-12-01 80 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/)」,其中的共識是「不,他們不應該」。 – 2014-12-01 22:46:20

+0

好吧,我不知道 - 謝謝你的提醒:) – 2014-12-02 10:34:00

回答

0

編輯:我認爲這是一個更好的解決方案(我不知道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個參數嗎?那麼查詢文檔會是什麼? – 2014-12-01 21:41:43

+0

@JSmith它是'FindAll' – i3arnon 2014-12-01 21:45:42

+0

完美 - 謝謝! – 2014-12-01 21:48:36