Mongodb动态像操作员一样



在mongodb中,相当于sql"like"运算符是

db.users.find({"shows": /m/})

使用 nodejs/javascript,我想根据 url 参数动态更改字母。

我试过了

letter = req.params.letter;
db.users.find({"shows": '/' + letter + '/'})

这行不通,我猜是因为斜杠现在是字符串,解释不同。

根据文档页面,一种方法可以做到这一点:

db.users.find( { shows : { $regex : letter } } );

+1 表示语法上的 mindandmedia。 但是,请记住,如果您希望查询有效地使用索引,则必须使用前缀查询(也称为根正则表达式),例如/^prefix/

否则,您的查询可能会非常慢 - 请参阅此处文档中的注释:

http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-RegularExpressions

你可以试试这个:

let filter = "Dynamic";
let str = /.*Raj.*/;
console.log(str);
console.log(typeof(str));

let stra = eval(`/.*${filter}+.*/`);
console.log(stra);
console.log(typeof(stra));

最新更新