在 mongo findOne 中动态设置查找键

dynamically set the lookup key in a mongo findOne

我的 REST API 允许用户决定他们希望如何查找项目。 他们有两个选项,默认选项和第二个选项。

URL 看起来像:

/项目/{id}

可选地,用户可以在请求中传递 'query',即

/item/{id}?key=sku

我正在使用 Node.js、restify 和 mongoJS。我正在尝试按如下方式在查询中动态设置 "key":

    // default lookup is always id
    var queryKey = '_id';

    // if the optional 'via' query is set to sku change the lookup key
    if(viaVal === 'sku' ){
      queryKey = 'sku'
    }

   mongo.idpool.findOne({queryKey: id},

这会导致我在调试时出现 "illegal access" 错误并且不起作用。

当使用方括号括起变量作为 属性 名称时,您需要使用 computed property name 语法:

mongo.idpool.findOne({[queryKey]: id}, ...