mongoDB中有多个filter

Theres是我的应用程序的一部分,我可以指定一些filter来检索某些数据。 但不是所有的filter都是必要的,所以我可以留下一些空的和查询只是不会使用它们。 我怎样才能在mongoDB中实现这一点。 提前致谢。

客户端:

$('#filter').click(function(e){ e.preventDefault(); var filters = JSON.stringify({ Marca : $('#Marca').val(), Modelo : $('#Modelo').val(), Fecha : $('#Fecha').val()}); $.ajax({ type: 'POST', data: filters, url: '/filterFees', contentType: 'application/json' }).done(function( response ) { if(response.msg === ''){ filterFees(response.data); } else { alert('Error: ' + response.msg); } }) }) 

node.js(使用和尚):

 app.post('/filterFees', function(req, res){ var db = req.db; var collection = db.get('Fees'); collection.find({'Marca' : req.body.Marca, 'Modelo' : req.body.Modelo, 'Fecha' : req.body.Fecha, },{},function(err,docs){ res.send((err === null) ? { msg: '', data : docs } : { msg:'error: ' + err }); }); }) 

检查filter中是否存在该值

 var filter = {}, filters; if $('#Marca').val() filter.Marca = $('#Marca').val(); if $('#Modelo').val() filter.Modelo = $('#Modelo').val(); if $('#Fecha').val() filter.Fecha = $('#Fecha').val() filters = JSON.stringify(filter); 

并findfilter的数据

 collection.find(req.body,{},function(err,docs){ res.send((err === null) ? { msg: '', data : docs } : { msg:'error: ' + err }); }); 

PS。 不知道为什么你串参数,而不是发送对象