MongoJS find()只返回10个结果?

时间:2014-08-12 18:08:23

标签: javascript node.js mongodb socket.io mongojs

我是NodeJS的新手,我正在使用MongoJS连接到我的数据库。

一切正常,但是当我使用db.collection.find()函数时,它只返回数据库中的前10个结果。

function listMessages(from,to){
console.log("[REQ] User "+from+" asked chat with "+to);
var htext = 'Welcome to the chat<br/>';
db.messages2.find({$or:[{from_id: from, to_id: to}, {from_id: to, to_id: from}]},function(err, echoData) { 
  if( err || !echoData) console.log("No messages found");
  else echoData.forEach( function(returnData) {
  htext += returnData.from_id+": "+returnData.text+"<br/>";
  });
  io.sockets.emit('html message '+from, htext, to);
});
}

它工作正常,但只返回数据库中的前10个结果,即使我使用限制 我也尝试过使用它,但它没有用:

db.messages2.find({$or:[{from_id: from, to_id: to}, {from_id: to, to_id: from}]},{},{limit: 50}, function(err, echoData) {

我需要做些什么来解决这个问题?谢谢!

1 个答案:

答案 0 :(得分:1)

mongoDB中的默认限制是10

来自文档:

  

collection.find(query [[[,fields],options],callback]);

     

选项 - 定义额外的逻辑(排序选项,分页等)。

     

寻呼   可以使用选项参数限制并跳过

来实现分页

所以有一个新的限制:

db.messages2.find({}, {}, {limit: 1000}, function(err, echoData) {