2015-11-02 37 views
0

我可以通過遊標的所有元素循環的第一個元素使用(高達數返回):得到一個蒙戈光標

cursor.each(function(err, doc) 

但如何我剛剛得到光標的第一個元素?

回答

1

您可以使用toArrray()

var arrayDoc = cursor.toArray(); 
arrayDoc[0]; //first element from cursor 

arrayDoc = cursor.limit(1).toArray(); //limiting to one 
+0

如果你只想要第一個元素,[限制](https://docs.mongodb.com/manual/reference/method/cursor.limit/#cursor.limit)光標到一個元素可能是一件好事: 'var arrayDoc = cursor.limit(1).toArray();' – luckydonald

+0

@luckydonald謝謝剛修改過的答案。 – inspired

2

您可以將光標轉換爲數組。 試試這個

cursor.toArray(function(err,result){ 
    if(result) 
    { 
     //result[0] will give you first element from cursor 
    } 
}) 
+0

我看到在文檔中,並希望有另一種方式,但事實證明,工作正常。公認。 – Dirk

3

這是非常低效調用toArray如果你只是想在搜索結果的第一文檔。相反,調用next光標:

cursor.next(function(err, doc) { 
    if (doc) { 
     ... 
    } 
}); 

另一種選擇是隻是調用findOne而不是find如果你只想要一個單一的文檔反正。

0

您可以使用:

cursor.fetch()[0]; 

取將返回遊標的所有目標文件。 問候,