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

时间:2017-10-28 19:28:07

标签: node.js mongodb mongoose mongoose-schema

我正在尝试创建一个方法,该方法将根据参数和类似值从集合中获取记录。

其中 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); 
        }
    });
}

发生的事情是这段代码试图从不存在的表中获取colum parm,每次都不存在返回记录。

如何在findOne Query中传递param的值?

1 个答案:

答案 0 :(得分:5)

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

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

或许,您可以将它分配给像这样的对象:

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