我在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相关问答推荐

AWS EC2 npm install 突然很慢

即使部署成功,也不会触发 Firebase 函数来填充 Firestore 集合.为什么?

如果 express.js (node.js) http 请求在完成之前关闭会发生什么?

cURL 和 shell 任务

在安装 tensorflow 时遇到问题

为什么我在生产环境中 deproy Next.js 示例项目时 CSS 不起作用?

使用新react 18.0.0 的 create-react-app my-app redux 错误

Cassandra node.js 驱动程序有替代品吗?

Electron 5.0.0“未捕获的 ReferenceError:未定义要求”

如何修复错误 - nodemon.ps1 无法加载,因为在此系统上禁用了运行脚本(没有安全风险)?

React Hooks - 使用 useState 与仅使用变量

deno vs ts-node:有什么区别

Base64 Nodejs 中的读取文件

如何使用 nvm 更改节点版本

如何配置 axios 使用 SSL 证书?

(节点:63208)DeprecationWarning:collection.ensureIndex 已弃用.改用 createIndexes

如何在 package.json 中使用变量?

错误:EACCES:权限被拒绝,访问“/usr/local/lib/node_modules”

为什么不鼓励使用`.catch(err => console.error(err))`?

Node.js -Firebase 服务帐户私钥不会解析