我想在meteor中运行一个查询并将返回的字段数限制为仅5.这是我的代码:
var courses = Courses.find(
{ day_of_week : {$in: day_selector},
price : {$gt : price_min, $lt : price_max},
starts : {$gt : schedule_min},
ends : {$lt : schedule_max}},
{limit : 10});
console.log(courses);
return courses;
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时,我会在控制台日志中获得适合选择器的所有课程,而不仅仅是其中的10个.在模板中一切都很好,只显示10个课程.
我看了这个问题: 在服务器端限制Meteor的结果数量?
但它没有帮助,因为我没有使用特定的_id字段为我的课程,我使用特定的_id字段,但其他集合虽然.
Pen*_*ent 25
目前,服务器正在发送您的整个课程集合,您只是在客户端将它们过滤到10.您实际上可以创建一个被动的订阅/发布来动态设置限制,或者您可以只限制在服务器上发送的记录数量
Meteor.publish('courses', function(limit) {
//default limit if none set
var dl = limit || 10;
return Posts.find({}, {limit: dl});
});
Meteor.subscribe('courses', Session.get('limit'));
Run Code Online (Sandbox Code Playgroud)
然后使用调用以下内容的事件动态设置限制:
Session.set('limit', 5);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16525 次 |
| 最近记录: |