我正在尝试从DB获得匹配的trainNos。 这就是我的尝试。
var query = trainList.find((req.query.trainNo === '') ? {} : { trainNo: { $regex: req.query.trainNo } });
query.paginate(options, function(err, response) {
if (err) console.log(err);
res.json(response);
})
但我得到一个错误,说不能使用带有数字的正则表达式。 我也尝试了这个链接Mongoose find() RegExp for Number type field
仍然遇到同样的错误。
帮助将不胜感激。
答案 0 :(得分:0)
var query = trainList.find((req.body.trainNo === '') ? {} : { trainNo : new RegExp(req.body.trainNo, 'i') });
query.paginate(options, function(err, response) {
if (err) console.log(err);
res.json(response);
})
答案 1 :(得分:0)
如链接的答案所示,您可以使用 $where
运算符,但效率非常低,不推荐使用
var criteria = (req.body.trainNo === '') ? {} : { "$where" : "/"+req.body.trainNo+"/.test(this.trainNo)" };
trainList.find(criteria).paginate(options, function(err, response) {
if (err) console.log(err);
res.json(response);
});