我正在使用 nodeJS、MongoDB 和 Express 为 API (REST) 开发通用查询方法。
在将请求转发到我的模块之后,执行文字查询时一切都按预期工作。我正在通过示例进行查询,但是当我想使用正则表达式或 SQL 术语中的“like”进行查询时,我无法使其工作。
在模块中使用 express 的 find 方法是这样的:
exports.findByQuery = function(req, res) {
collection.find( req.query).toArray(function(err, docs);
}
这可以按预期工作,除了如果我想使用正则表达式查询字段以查找所有具有 T 的用户名,我总是将 .query JSON 对象作为带有“”的字符串获取,如下所示:
{"username":"/T/"}
代替 :
{username:/T/}
req.query 来自 GET 请求。
如果我更换:
collection.find( req.query).toArray(function(err, docs);
和:
collection.find( {username:/T/} ).toArray(function(err, docs);
它工作正常!..
我认为在对其执行 .find 之前,我需要对 req.query 执行清理或转换方法,但我找不到任何东西。任何线索或帮助将不胜感激!
在此先感谢您的帮助!