【问题标题】:Mongoose stream return few results first time猫鼬流第一次返回很少的结果
【发布时间】:2012-06-19 04:50:51
【问题描述】:

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

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

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

【问题讨论】:

    标签: node.js mongoose


    【解决方案1】:

    您是否尝试过限制查询?如 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);
      });
    });
    

    【讨论】:

    • 谢谢,现在查看我的代码,我决定按日期获取最新文章,我正在保存带有时间戳的文章,所以.. 当用户连接它时,我限制了来自文章的查询当前时间减去一小时。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2014-05-30
      • 2018-08-22
      • 2016-07-30
      • 2015-08-26
      • 2018-07-30
      • 1970-01-01
      • 2023-04-11
      • 2015-08-04
      相关资源
      最近更新 更多