一尘不染

如何在mongodb-native findOne()中将变量用作字段名?

node.js

我在mongodb中有以下数据:

{  
    "name": "Amey",
    "country": "India",
    "region": "Dhule,Maharashtra"
}

并且我想在传递字段名称作为查询中的变量时检索数据。

以下操作无效:

var name = req.params.name;
var value = req.params.value;
collection.findOne({name: value}, function(err, item) {
    res.send(item);
});

我如何查询mongodb保持字段名称及其值动态?


阅读 296

收藏
2020-07-07

共1个答案

一尘不染

您需要动态设置查询对象的键:

var name = req.params.name;
var value = req.params.value;
var query = {};
query[name] = value;
collection.findOne(query, function (err, item) { ... });

这样做时{name: value},键是字符串,'name'而不是变量的值name

2020-07-07