Мангуст стрим вернуть мало результатов в первый раз
Я работаю над новой службой новостей в реальном времени, сейчас у меня есть проблема, которую я не знаю, как ее решить.
Прежде всего, когда пользователь подключается к серверу 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);
});
});