Answer a question

I have this data in mongodb:

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

and I want to retrieve the data while passing a field name as a variable in query.

Following does not work:

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

How can I query mongodb keeping both field name and its value dynamic?

Answers

You need to set the key of the query object dynamically:

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

When you do {name: value}, the key is the string 'name' and not the value of the variable name.

Logo

MongoDB社区为您提供最前沿的新闻资讯和知识内容

更多推荐