如何替换流星集合查询中的排序关键字字段

How to replace the Key for sort field in a meteor collection query?

本文关键字:查询 排序 字段 关键字 集合 流星 何替换 替换      更新时间:2023-09-26

在下面的代码中,我想用通过参数this.params.sortby传入的值替换name键,但我无法使其工作。寻求帮助。

因此,如果:

this.params.sortby=location

我想要这个:

Template.MyTemplate.helpers({
    data: function () {
      return MyCollection.find({},{sort:{name: 1 }});
    }
  });

成为这个:

Template.MyTemplate.helpers({
    data: function () {
      return MyCollection.find({},{sort:{location: 1 }});
    }
  });

您可以使用带括号符号的对象来实现动态密钥命名,如下所示:

var sorter={};
sorter[this.params.sortby]=1;

假设this.params.sortby等于String的"年龄",则会有以下sorter对象:

var sorter={
  age:1
};

然后您可以使用对您的收藏进行适当的排序:

MyCollection.find({},{sort:sorter});

在查询之前创建SORT工厂生成器以生成排序条件。