1. ホーム
  2. node.js

[解決済み] mongodb-nativeのfindOne()でフィールド名として変数を使用するには?

2023-03-06 21:36:48

質問

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 .