相关疑难解决方法(0)

Meteor Subscribe不会更新集合的排序顺序

// Snippet from Template
<div class="post-container">
  {{#each elements}}
    {{> post-element this}}
  {{/each}}
</div>

// Snippet from Client 
Meteor.subscribe('thePosts');

// Snippet from Server
Meteor.publish('thePosts', function(){
  return Posts.find({},  {sort:{createdAt:-1}, reactive:true});
});
Run Code Online (Sandbox Code Playgroud)

当我做...

Posts.insert({body:postBody, createdAt: new Date()});
Run Code Online (Sandbox Code Playgroud)

post文档被添加并显示在我的列表的末尾,而不是我的发布函数中指定的降序.关于我做错了什么的任何想法?

谢谢!

mongodb node.js meteor

18
推荐指数
1
解决办法
5621
查看次数

从大量记录的最小化查询卡住并挂起浏览器

我正在为角度流星建立一个管理页面.

我已经发布了一个集合中的所有记录:" 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)

还是同样的问题.

publish-subscribe angularjs meteor minimongo angular-meteor

10
推荐指数
1
解决办法
441
查看次数