在db.collection.findOne中传递variables({parm:value}

我正试图创build一个方法,将从基于参数和值类似的集合中获取logging。

其中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,返回的logging每次都不存在。

如何在findOne查询中传递参数的值?

如果您希望在对象的关键部分传递variables,则可以使用方括号将其传递。 在你的情况下,像这样做:

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

或者,也许,你可以把它分配给一个对象,如:

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