1

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

首先,当用户连接到 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);
    }); 
}); 

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

4

2 回答 2

0

最后,我将查询限制在当前时间减去半小时,这样我第一次得到的只是一小部分数据。

于 2012-06-18T20:50:51.300 回答
0

您是否尝试过限制查询?如查询下的 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);
  });
});
于 2012-06-18T18:58:23.503 回答