2016-10-08 12 views
1

この問題の名前を付ける方法はわかりませんが、本質的にMongoDBのMongooseパッケージを使用していて、関数は動作していません。問題の関数は次のとおりです。'name'のデータベースを検索することができるjavascriptオブジェクトの引数のNode.js文字列

var value = 'onetwothree' 
model.findOne({ 'name': value }, callback) 

です。しかし、変数として'name'を渡そうとすると、この関数は機能しません。たとえば、これは動作しません:

var attribute = 'name' 
model.findOne({ attribute: value}, callback) 
属性引数の変数をしながら、私はちょうどあなたができる

答えて

3
など、 'city''age'、つまり私は 'name'に渡すことができ、 findOne()関数を呼び出すにはどうすればよい

関数に渡す前に、オブジェクトを作成し、[]表記法を使用して動的プロパティを割り当てる:

var query = {}; 
var attr = 'city'; 
var val = 'Miami'; 

// set the dynamic property 
query[attr] = val; // { city: 'Miami' } 

model.findOne(query, callback) 

それともES6で

(あなたはバベルを使用している場合)、あなたがそれを行うことができます計算されたプロパティ名で直接:

const attr = 'city'; 
const val = 'Miami'; 
const query = { [attr]: val }; // { city: 'Miami' } 

model.findOne(query, callback); 
+0

ありがとうございます! – user3768533

+0

仲間を助けてうれしい:) – nem035