使用变量在集合中查找文档

时间:2014-07-09 11:03:29

标签: mongodb meteor

我想在mongo集合中找到特定字段fieldName的最大值。 为此,我创建了一个帮助器largestValue

UI.registerHelper('largestValue', function(fieldName) {
  return Collection.findOne({fieldName: {$exists: true}}, {sort: {fieldName: -1}}).value;

但是,这总是以未定义的形式返回。如果我在return语句中使用实际的字段名称而不是fieldName参数,则会返回一个文档。

如何为此目的使用参数?

该功能在HTML中调用,如下所示:largest value of X: {{largestValue 'X'}}

1 个答案:

答案 0 :(得分:1)

{fieldName: -1}将使用存储值fieldName的键-1创建一个对象。要实现您的目标,您需要创建一个变量并使用方括号语法:

var object = {}
object[fieldName] = -1

然后使用object代替{fieldName: -1}。因此,以下内容适用于您的情况:

UI.registerHelper('largestValue', function(fieldName) {
   var where = {}
   where[fieldName] = {$exists: true}
   var sort = {}
   sort[fieldName] = -1
   return Collection.findOne(where, {sort: sort}).value;
})