我正在尝试创建一个方法,该方法将根据参数和类似值从集合中获取记录。
其中 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的值?
答案 0 :(得分:5)
如果您希望在对象的关键部分传递变量,可以使用方括号传递它。在你的情况下,这样做:
db.collection.findOne( { [parm] : value } , function(err, item) {
或许,您可以将它分配给像这样的对象:
var query = {};
query[parm] = value;
db.collection.findOne( query , function(err, item) {...})