我正在开发一项新的实时新闻服务,现在我遇到一个不知道如何解决的问题。
首先,当用户连接到 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/