我在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以保持字段名及其值的动态性?

推荐答案

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

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的值.

Node.js相关问答推荐

需要关于基于角色授权的设计建议

根据我的测试,为什么在编写Varint代码方面,NodeJS要比Rust快这么多?

Socket.io 未将用户加入给定房间

连接到在线 redis 数据库时出错

nyc 代码覆盖不适用于 NodeJs Express 服务器

找不到模块bcryptjs

在 getServerSideProps 中使用 EmailProvider 获取 NextAuth 会话会抛出 fs找不到模块

使用`useLocalStorage`和`useDebounce`时如何解决Next.js中的react-hydration-error

在 node:readline 中按 CTRL+D 时会发出什么信号?

AJAX 和 Node JS:在我的服务器中接收空数据

如何申请在NextJS上下载文件的许可?

在 Express-js 中使用路由

通过 npm 导入 Sass

node.js 中 res.setHeader 和 res.header 的区别

Node.js + Express 上的多个视图路径

从 CoffeeScript 中的数组中删除一个值

向 Stripe 提交付款请求时出现没有此类令牌错误

node 应用程序是否有任何独立的 gui 模块

使用 Node.js 我得到错误:EISDIR,读取

为什么 Node.js 没有原生 DOM?