2017-10-28 137 views
1

我試圖創建將基於一個參數和有價值的東西喜歡收藏獲取記錄的方法在db.collection.findOne傳遞變量({PARM:值}

其中PARM。是例如的_id場在這個模式。

getRecord('_id', '1234567876543') 

getRecord(parm, value){ 
    db.collection.findOne({ parm : value } , function(err, item) { 
     if (err) { 
      console.error(err); 
     }else if (item === null) { 
      console.error('record does not exist'); 
     }else { 
      Record = JSON.stringify(item); 
     } 
    }); 
} 

正在發生的事情是,這個代碼試圖獲取來自一個不存在的表科拉姆PARM,返回記錄每次不存在。

如何在findOne查詢中傳遞參數的值?

回答

4

如果你想傳遞一個變量中的對象的關鍵部分,你可以通過使用方括號通過。對你來說,做這樣:

db.collection.findOne({ [parm] : value } , function(err, item) { 

或者,也許,你可以只將其分配給喜歡的對象:

var query = {}; 
query[parm] = value; 
db.collection.findOne(query , function(err, item) {...}) 
+1

@JoaoFilipeClementeMartins哈哈..很高興我能幫助:) –

+3

@JoaoFilipeClementeMartins請批准這個答案是正確的。 – semanser

+0

我會但需要9分鐘。 – JoaoFilipeClementeMartins