天天看點

mongo中遊标

1.手動循環通路遊标

    mongo中我們常用的查詢方式db.collection.find()方法其實傳回的就是遊标,隻不過我們并未給傳回的遊标配置設定變量,我們所看到的的查詢資料也就是遊标自動疊代得出的(在shell中自動疊代20次).下面便使用手動疊代遊标

db.users.insert([{name:1},{name:2},{name:3}])      

然後使用變量來接收傳回的遊标

var myCursor = db.users.find()      

 然後我們再次調用myCursor即可輸出

mongo中遊标

 我們還可以使用hasNext()和next()方法來執行遊标

while(myCursor.hasNext())
{
    printjson(myCursor.next())
}      

 也可以使用遊标的forEach()方法來執行遊标

myCursor.forEach(printjson)      

 在shell中,可以使用toArray()方法來疊代遊标并傳回數組中文檔

  注意:toArray()方法會完成疊代,是以遊标會耗盡

var arrdoc = myCursor.toArray()
 for(var i = 0;i<arrdoc.length;i++)
{
    printjson(arrdoc[i])
}      

2.查詢遊标保留文檔數

  mongo中objsLeftInBatch()方法可以查詢由表中保留的文檔數

mongo中遊标