node.js - Mongoose 流第一次返回很少的结果

标签 node.js mongoose

我正在开发一项新的实时新闻服务,现在我遇到一个不知道如何解决的问题。

首先,当用户连接到 NodeJS 服务器时,我创建一个 Mongoose 流,这样我就可以轻松快速地返回该数据。

我现在遇到的问题是第一次只返回几组数据,下一个代码将返回所有集合:

io.sockets.on('connection', function(socket) {
    console.log("New user has been connected");

    var stream = News.find().tailable().stream();

    stream.on('error', function (err) {
      console.error(err)
    });

    stream.on('data', function (doc) {
      socket.emit("newArticle", doc);
    }); 
}); 

所以,问题是...我如何才能第一次返回最新的十个结果?

最佳答案

您是否尝试过限制查询?如 queries 下的 mongoose.js 文档所示.

使用你的代码将会是

io.sockets.on('connection', function(socket) {
  console.log("New user has been connected");

  var stream = News.find().tailable().limit(10).stream();

  stream.on('error', function (err) {
    console.error(err)
  });

  stream.on('data', function (doc) {
    socket.emit("newArticle", doc);
  });
});

关于node.js - Mongoose 流第一次返回很少的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11075462/

相关文章:

node.js - 双击 Electron 构建器打开时获取关联文件的路径

javascript - 使用 AsyncStorage 实例化持久应用程序状态

javascript - 我应该如何在单个项目的多个文件中要求或使用相同的模块?

node.js - Mongoose :如何获取查询的字符串表示

node.js - 使用 Mocha 进行测试之前清除集合

node.js - Sublime Text 3 Gulp 包

node.js - 无法读取未定义的属性 'then',bcrypt.hash()

javascript - 如何重命名mongodb中整个集合中的一个元素名称

node.js - 如何使用 connect-mongo session ?

mongodb - MongoDb 聚合中的条件展开?