Мангуст стрим вернуть мало результатов в первый раз

Я работаю над новой службой новостей в реальном времени, сейчас у меня есть проблема, которую я не знаю, как ее решить.

Прежде всего, когда пользователь подключается к серверу 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);
    }); 
}); 

Итак, вопрос... как я могу вернуть в первый раз только последние десять результатов?

2 ответа

Наконец, я делаю это, ограничивая запрос текущим временем минус полчаса, таким образом, когда я впервые получаю небольшой набор данных.

Вы пытались ограничить запрос? Как показано в документации 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);
  });
});
Другие вопросы по тегам