【问题标题】:Mongo sort by dynamic fieldMongo 按动态字段排序
【发布时间】:2014-03-11 03:28:59
【问题描述】:

所以我传入了一个动态变量,它是我想要排序的字段的名称。

假设下面的 sortVariable 可以等于“price”、“createdAt”、“name”等。这不起作用,我该怎么做?

function findStuff (sortVariable) {
    var postings = Postings.find({
      "device.name": filter.exactDevice,
    }, {
      sort: {
        sortVariable: 1
      }
    });
    return postings;
}

【问题讨论】:

    标签: mongodb meteor


    【解决方案1】:

    您不能将变量用作对象字面量中的键。试试这个:

    var findStuff = function(sortVariable) {
      var sort = {};
      sort[sortVariable] = 1;
    
      return Postings.find({
        'device.name': filter.exactDevice
      }, {
        sort: sort
      });
    };
    

    【讨论】:

      【解决方案2】:

      如果你使用的是 node v4,你可以使用 ES6 语法:

         find.sort({[sortVariable]: 1});
      return Postings.find({
          'device.name': filter.exactDevice
        }, {
          sort: {[sortVariable]: 1}
        });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-02
        • 1970-01-01
        • 2013-07-17
        • 1970-01-01
        相关资源
        最近更新 更多