Sto*_*per 10 publish-subscribe angularjs meteor minimongo angular-meteor
我正在为角度流星建立一个管理页面.
我已经发布了一个集合中的所有记录:" posts "并且已经订阅了前端的所有记录.
$meteor.subscribe('posts');
Run Code Online (Sandbox Code Playgroud)
在控制器中,如果我从minimongo中选择所有记录的游标,它可以正常工作:
$scope.posts = $meteor.collection(Posts);
Run Code Online (Sandbox Code Playgroud)
但我希望显示分页,所以我想要一次有限的记录,如:
$scope.posts = $meteor.collection(function(){
return Posts.find(
{},
{
sort: {'cDate.timestamp': -1},
limit: 10
}
);
});
Run Code Online (Sandbox Code Playgroud)
它在minimongo中遇到了查询.浏览器挂起了.
" posts "集合仅包含500条记录.当我有200条记录时它工作正常.
任何人都可以给我一个关于我的代码和概念错误的想法吗?
编辑:
好的!当我从查询中评论$ sort行时,它运行正常,如下所示:
$scope.posts = $meteor.collection(function(){
return Posts.find(
{},
{
//sort: {'cDate.timestamp': -1},
limit: 10
}
);
});
Run Code Online (Sandbox Code Playgroud)
但我需要对记录进行排序.那我现在该怎么办?
编辑:
还尝试在sort属性中添加索引,如下所示:
db.Posts.ensureIndex({"cDate.timestamp": 1})
Run Code Online (Sandbox Code Playgroud)
还是同样的问题.
小智 2
浏览器崩溃是因为它在兑现之前只能加载到缓存中的数据有限。对于当您需要请求大量文档时会发生什么的问题,请将该过程从客户端中移开,并通过优化的发布和订阅方法/调用在服务器上执行尽可能多的操作。没有真正的理由在浏览器缓存中加载大量文档,因为 minimongo 的便利性在于小数据集和不需要立即与服务器同步(或永远同步)的东西。