2015-05-05 4 views
2

Следующий код всегда возвращает те же документы. req.query.skip продолжает увеличиваться на 10, все же распечатывается один и тот же набор документов. Также имеется более 1000 документов.Mongodb nodejs драйвер skip() не работает

Collection.find({}).skip(req.query.skip).limit(10); 

var imageIdArray = []; 
cursor.each(function(err, item) { 
if (item == null) { // end 
    console.log(imageIdArray); 
    res.write(JSON.stringify(imageIdArray)); 
    res.end(); 
} else { 
    imageIdArray.push(item._id); 
} 
}); 

Функция пропуска() выглядит так, как будто она не работает.

ответ

1

Он возвращает те же документы, потому что skip требует номер в качестве аргумента и значение req.query.skip является строкой, то вам нужно разобрать его на целое число первых затем передать его в качестве параметра пропускаемого:

var skip = parseInt(req.query.skip), 
    cursor = Collection.find({}).skip(skip).limit(10); 

var imageIdArray = []; 
cursor.each(function(err, item) { 
    if (item == null) { // end 
     console.log(imageIdArray); 
     res.write(JSON.stringify(imageIdArray)); 
     res.end(); 
    } else { 
     imageIdArray.push(item._id); 
    } 
}); 
+1

Спасибо , после обновления драйвера mongodb-nodejs от версии 1.4 до версии 2.0 он отображается как предупреждающее сообщение. –

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