mongodb-native findOne()中如何使用变量作为字段名? [英] How to use a variable as a field name in mongodb-native findOne()?

查看:179
本文介绍了mongodb-native findOne()中如何使用变量作为字段名?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在mongodb中有这个数据:

  {
name:Amey,
国家:印度,
地区:Dhule,Maharashtra
}

,我想检索一个作为变量传递的字段名称的数据查询。



以下内容不起作用:

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

如何查询mongodb保留字段名称及其值是否动态?

解决方案

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

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

当您执行 {name:value} ,关键是字符串'name'而不是变量名称的值。


I have this data in mongodb:

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

and I want to retrieve the data querying on a field name passed as a variable.

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?

解决方案

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.

这篇关于mongodb-native findOne()中如何使用变量作为字段名?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆