JS - 将字符串传递给MongoDB查询

时间:2016-10-18 09:12:27

标签: javascript mongodb meteor

在javascript / Meteor中,我正在尝试构建一个可自定义的函数,以根据排序键返回Mongo Collection的最后一个文档。

当我的排序字段(created-at)被硬编码时,这项工作:

last_document = function(collection) {
  var query = {
    sort: {
      "createdAt": -1
    }
  };
  var last_document = collection.find({}, query).fetch()[0];
  return last_document;
};

但是当我在参数中传递它时,它不会:

dernier_document = function(collection, sort_by = "createdAt") {
  var query = {
    sort: {
      sort_by: -1
    }
  };
  var dernier_document = collection.find({}, query).fetch()[0];
  return dernier_document;
};

我正在使用流星1.4。 有什么想法吗?

1 个答案:

答案 0 :(得分:1)

你的问题不是将字符串传递给mongodb,而是将变量转换为Object键。

您可以通过以下方式解决问题:

var query = {sort: {}};
query.sort[sort_by] = -1;

var query = { sort: { [sort_by]:-1}};

enter image description here