2016-12-08 17 views
0

検索パラメータに空白( '')の値を渡していますが、レコードが表示されません。私は、nullまたは空白の値を渡すと、検索クエリからそのパラメータを無視し、レコードを表示する必要があります。私のコードは検索パラメータにnull値を渡すとレコードが表示されませんmongoDB

var _branchName = req.query.branchName; 
var _personName = req.query.personName; 
var _clientID = req.query.clientID; 

var _searchQRY = [ 
    { 
     branchName: { $regex: _branchName, $options: '-i' } 
    }, 
    { 
     personName: { $regex: _personName, $options: '-i' } 
    }, 
    { 
     "client._id": _clientID 
    }, 
    { 
     isDeleted: { $ne: true } 
    }]; 

objModel.find({ $and: _searchQRY }, function (err, results) { 
    res.json({ status: config.responseStatus, record: results }) 
}); 

です。このパスでは、 "_clientID"は空白( '')です。その時、私はそのパラメータを無視して、残りのパラメータを検索したい。あなたは何ができるか

+0

空白の '_clientId'を渡すときのあなたの期待は何ですか? – dikesh

+0

@dikesh空にすると_ _clientIdだけがフェッチされます。しかし私はすべての記録が欲しい。意味、検索クエリで_clientID検索を無視したい。 –

答えて

1

あるときにこれは、すべてのclient._idにマッチします。この

if (_clientID == '') 
    _clientID = { $exists : true}; 

のようなオブジェクトに値を変更し、あります

var _branchName = req.query.branchName; 
var _personName = req.query.personName; 
var _clientID = req.query.clientID; 

var _searchQRY = [ 
    { 
     branchName: { $regex: _branchName, $options: '-i' } 
    }, 
    { 
     personName: { $regex: _personName, $options: '-i' } 
    }, 
    { 
     isDeleted: { $ne: true } 
    }]; 

if (_clientID) { 
    _searchQRY.push(
     { 
      "client._id": _clientID 
     } 
    ); 
} 

objModel.find({ $and: _searchQRY }, function (err, results) { 
    res.json({ status: config.responseStatus, record: results }) 
}); 

e要求に指定した場合にのみ、検索クエリにclient._idを含めます。

0

_clientIDが空白の場合、_clientIDはあなたが好きななめらかを行うことができ、空の文字列''

関連する問題