Node.jsstring里面的javascript对象参数
我真的不知道如何命名这个问题,但本质上我正在使用Mongoose包的MongoDB和function不起作用。 有问题的function是:
var value = 'onetwothree' model.findOne({ 'name': value }, callback)
这使我可以在数据库中search属性'name'
。 但是,如果我尝试将'name'
作为variables传递,则该函数不起作用。 例如,这不起作用:
var attribute = 'name' model.findOne({ attribute: value}, callback)
如何在使属性参数variables的同时调用findOne()
函数,即可以传入'name'
, 'age'
, 'city'
等。
您可以在将其传递给函数之前创build该对象,并使用[]
表示法指定dynamic属性:
var query = {}; var attr = 'city'; var val = 'Miami'; // set the dynamic property query[attr] = val; // { city: 'Miami' } model.findOne(query, callback)
或者在ES6中(如果您使用的是Babel),您可以直接使用Computed Property Name(计算属性名称)
const attr = 'city'; const val = 'Miami'; const query = { [attr]: val }; // { city: 'Miami' } model.findOne(query, callback);