用Mongoose以编程方式构建动态查询

我正在尝试根据从表单接收的输入来构建搜索。

router.get('/data', function(req, res) {

var firstName=req.body.firstName,

lastName=req.body.lastName,

companyName=req.body.companyName,

email=req.body.email;

});

我想根据这些值建立一个查询,但是如果该字段没有值,我显然不想在搜索中包括它(搜索“”会改变结果)

我尝试了几种不同的方法,例如构建一个字符串以放置在其中:

mongoose.model('customers').find({QUERY STRING WOULD GO HERE} ,function(err, data) {

if (err) return console.error(err);

console.log(data);

});

但这似乎无法正常工作。我也尝试过像这样的“堆叠”搜索查询:

if(firstName !="") {

mongoose.model('customers').find({firstName: firstName})

}

然后像这样执行搜索:

mongoose.model('customers').exec(function(err, customer){

console.log(customer);

});

但这会导致500个错误(而且我不确定是否可以从中获取更多信息)。

请帮助新手动态建立猫鼬搜索查询:(

回答:

尝试创建query对象,例如:

//generate query object based on availability of value 

var query = {};

if( your_variable !== "" ) {

query["some_key"] = your_variable;

}

if( your_second_variable !== "" ) {

query["some_other_key"] = your_second_variable;

}

mongoose.model('customers').find(query, function(err, c) {

//do something

});

以上是 用Mongoose以编程方式构建动态查询 的全部内容, 来源链接: utcz.com/qa/400593.html

回到顶部