0

モデルのクエリ中に where 句でクエリ列を動的に指定したいのですが、可能ですか? 私はいくつかの異なる方法を試しましたが、うまくいきませんでした。このようなものを実行すると、dataTypeToQuery という列を探しているため、Logic db エラーが発生します。

var dataTypeToQuery = 'age';
var dataToQuery = 21;

User.find()
.where({ dataTypeToQuery: dataToQuery })
.limit(100)
.sort('name')
.exec(function(err, users) {
  // Do stuff here
});
4

2 に答える 2

0

完璧な答え。条件に応じてパラメーターを動的に追加する作業が簡単になりました。複数のパラメーターの次の単一検索を確認できます。

fullCriteriaSearch:function (req, res) {
var city = req.param("city");
var zip = req.param("zip");
var name= req.param("name");
var page = req.param("page");
var perPage = 10;
var query={}
if(city!=undefined){
  query['locationCity'] = city;
}
if(zip!=undefined){
  query['locationZip'] = zip;
}
if(name!=undefined){
  query['name'] = name;
}
User.find({ where: query,skip:page*perPage,limit:perPage}).populateAll()
    .then(function (users) {
       return res.json(users)
     })

}

于 2015-04-15T11:55:33.420 に答える
0

関数呼び出しの外で where parameters オブジェクトを作成してから、配列構文を使用してキーと値を設定してみてください。

var whereParams = {};
whereParams[dataTypeToQuery] = dataToQuery;

User.find()
    .where(whereParams)
    .limit(100)
    .sort('name')
    .exec(function(err, users) {
        // Do stuff here.
    });
于 2013-08-29T07:55:41.820 に答える