我是否需要对出版物和客户进行排序?

时间:2014-04-11 21:38:30

标签: meteor

假设我要显示一个已排序的家庭列表:

# publications
Meteor.publish "families", ->
  Families.find({}, {sort:{name:1}})

# routes
@route 'families',
    path: '/families'
    waitOn: ->
      return Meteor.subscribe('families')
    data: ->
      families: Families.find() 
      # or
      families: Families.find({}, {sort:{name:1}})

我测试过,看起来两者都运行正常。这里的最佳做法是什么?

2 个答案:

答案 0 :(得分:3)

正如我在this question的答案中所解释的那样,在发布函数中排序不会影响客户端上的文档顺序。因此,如果您这样做,您应该会看到相同的结果:

Meteor.publish "families", ->
  Families.find()

对于您的模板数据,指定排序(您的第二选择)。可能两个选项产生相同的结果,因为它们的插入顺序,但这是巧合。

答案 1 :(得分:1)

不是专家,我在这里看到的就像在服务器上排序和在客户端排序之间的替代方案一样。好吧,无论如何必须为每个请求完成工作 - 让它在客户端执行将减轻服务器,这通常有足够的工作......

后者也是如此。