node.js - 如何在 mongodb-native findOne() 中使用变量作为字段名?

我在 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,同时保持字段名称及其值是动态的?

最佳答案

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

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

https://stackoverflow.com/questions/17039018/

相关文章:

mongodb - 无法启动/启动本地 mongo db

java - Spring Data 的 MongoTemplate 和 MongoReposito

python - 插入后如何更新 Mongo 文档?

javascript - Mongoose:获取完整的用户列表

mongodb - 溢出排序阶段缓冲数据使用量超过内部限制

macos - mac上mongodb数据库的位置

mongodb - 如何将 mongodb 客户端连接到本地 Meteor MongoDB

mongodb - 使用 Mongoose 从 MongoDB 文档中删除一个键

sql - mongo中的外键?

mongodb - 如何使用 MongoDB 过滤子文档中的数组