在db.collection.findOne传递变量({PARM:值}

问题描述:

我试图创建将基于一个参数和有价值的东西喜欢收藏获取记录的方法在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查询中传递参数的值?

如果你想传递一个变量中的对象的关键部分,你可以通过使用方括号通过。对你来说,做这样:

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