だから私はデータベース内のアイテムをmongoose .find()
関数を使って検索したい。 私のルーターでは、URLから特定の項目を取得するためのこのコードがあります。 たとえば、キー値のないデータを見つける
mydomainname.com/market?type=1&name=hi&stats=123 ...?type=123&name=&...
var type = req.query.type;
var name= req.query.name;
var stats= req.query.stats;
Model.find({type: type, name: name, stats: stats})
.exec(function(err, model){
if(err){
console.log("error")
}else{
res.render('*jade*', {models: JSON.stringify(model)})
}})
これは正常に動作しますが、URLには、クエリの値が(上で見たように)が存在しない場合、クエリの値が''
に設定されます。私はデータベースにあるすべてのアイテムを並べ替えます。name = ''
の例はありません。
私は周りを検索していますが、私は何か助けを見つけることができませんでしたので、もし私がヒントを与えることができるなら、私は感謝します!
値であれば、あなたが求める場合空かヌル?この回答はそれを説明します:http://stackoverflow.com/a/16532000/3558900 –
私は5つの異なるquerysがあり、それらのすべてが価値がないと言うことができます。 if文とelse文をあまり使わないところで、{$ ne:null}を使う方法が見えません。そして、2^5は、ifとelseのステートメントをたくさん作り出す32の異なる組み合わせです。何とか{$ ne:null}を文字列オブジェクトに転送できますか? – DavidS
http://stackoverflow.com/questions/31995166/mongoose-optional-search-query-parametersの可能な部分 – JohnnyHK