【问题标题】:Meteor.js: Understanding sort parameters within a find{} methodMeteor.js:了解 find{} 方法中的排序参数
【发布时间】:2015-12-20 18:21:08
【问题描述】:

我正在《Meteor.js Javascript 框架入门》一书中做练习,并且 有一个部分创建了一个名为 categories 的模板,然后 {#each} 循环遍历集合。这样做的目的是将结果打印到屏幕上。这行得通,代码如下。

<template name ="categories">

    <div class ="title">my stuff</div>

    <div id='categories'>
        {{#each lists}}

        <div id="category">

            {{Category}}

        </div>

        {{/each}}
    </div>

</template>

我的问题是:

在下面的代码中,排序参数似乎没有做任何事情。我很好奇它应该做什么。我知道理论上它应该“排序”,但是当我使用参数时没有任何变化。我在流星文档中查找了它,但我无法弄清楚。我正在尝试修改代码,使其以不同的顺序排序。通过这种方式,我可以看到结果并真正了解 {sort: 的工作原理。我尝试将 {sort: {Category: 1}}) 修改为 {sort: {Category: -1}}) 以及 {sort: {类别:2}}) 并且总是相同的结果。

  Template.categories.lists = function() {
    return lists.find({}, {sort: {Category: 1}});  // Works

  /* return lists.find({}); */                     // Works just the same

  }

收藏品如下:

lists.insert({Category:"DVDs", items: [{Name:"Mission Impossible" ,Owner:"me",LentTo:"Alice"}]});

lists.insert({Category:"Tools", items: [{Name:"Linear Compression Wrench",Owner:"me",LentTo: "STEVE"}]});

【问题讨论】:

    标签: meteor


    【解决方案1】:

    在您的代码中,您可以尝试将排序的参数更改为数组而不是对象,如下所示:
    sort: [["Category","asc"],["another argument","desc"],[...]]
    所以代码:

     Template.categories.lists = function() {
        return lists.find({}, {
            sort: [
                ["Category", "asc"],
                ["another argument", "desc"],
                [...]
            ]
        }); 
        // return lists.find({}); // Works just the same
    }
    

    【讨论】:

      【解决方案2】:

      根据我的理解,这是因为默认是按自然顺序排序。更多信息请访问link

      【讨论】:

      • 我在发帖之前就读过它,但它仍然令人困惑。当我用 {skip: {Category: 1}}); 替换它时我看不出有什么变化。我猜真正的问题是“如何在 find 方法中使用 Selector 选项”。
      • 正如我之前提到的,如果没有给出选项,它会按自然顺序排序,即升序。使用 (sort:{category:1}} 还按升序对结果进行排序。因此结果相似。
      • 我正在尝试更改它,以便它以不同的顺序排序。这样我可以看到结果并真正了解它的工作原理。
      • 您可以尝试对 {sort: {Category: -1}} 进行排序,并使用更多未排序的随机数据。我希望您有超过 10-20 个类别可供测试。
      • 我有 5 个类别,做 -1 不会产生任何变化。
      猜你喜欢
      • 2020-12-18
      • 1970-01-01
      • 2016-02-05
      • 2014-12-10
      • 2014-11-15
      • 1970-01-01
      • 2016-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多