我需要从 Mongodb 获取数据,这取决于我正在搜索的内容。在接下来的两个示例中,它工作得很好:
//示例1;
var variable = "car"; Items.find({"description": variable}).fetch();
//示例2;
Items.find({"description": /.*car.*/}).fetch();
但是,当我想在 MongoDB 查询中将变量与正则表达式结合起来时,它什么也不返回,我做错了什么:
Items.find({"description": /.*variable.*/}).fetch();
Items.find({"description": "/.*"+variable+".*/"}).fetch();
提前致谢。
的确。你可能没有意识到"/"
不等于/
后者没有连接语义(例如+
据我所知(但我可能是错的)。后一种语法是内联/简写构造函数RegExp
班级。这就是说它很容易修复,只需使用显式创建正则表达式即可new RegExp
.
但是,就您而言,我建议使用 mongodb$regex
构造:
Items.find({"description": {$regex: ".*" + variable + ".*"}}).fetch();
有关更多详细信息,请参阅文档关于$regex.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)