11

I have the following publication:

Meteor.publish('times', function() {
    return Times.find({}, {sort: {createdAt: -1}}, {limit: 5});
})

This returns all records, limit is ignored. However this

Meteor.publish('times', function() {
    return Times.find({}, {limit: 5});
})

returns 5 records, but in the wrong order. How do I limit and sort in a publication?

user1048175
  • 1,100
  • 3
  • 12
  • 29

1 Answers1

21

See the example in the forEach section of the docs, and the documentation for find. limit is a key of the options object, so it should be:

Times.find({}, {sort: {createdAt: -1}, limit: 5});

Note that if you want the documents in sorted order on the client, you will need to sort them again in your template code.

Community
  • 1
  • 1
David Weldon
  • 63,632
  • 11
  • 148
  • 146