Mongodb动态类似运算符

时间:2012-07-06 12:21:43

标签: javascript node.js mongodb

在mongodb中,等同于sql“like”运算符是

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

使用nodejs / javascript我想基于url paramater动态更改字母。

我试过了

letter = req.params.letter;

db.users.find({"shows": '/' + letter + '/'})

这不起作用,我猜因为现在字符串的字符串被解释不同。

3 个答案:

答案 0 :(得分:14)

根据documentation page:

,有一种方法可以做到这一点
db.users.find( { shows : { $regex : letter } } );

答案 1 :(得分:2)

关于语法的mindandmedia +1。但请记住,如果您希望查询使用索引高效,则必须使用前缀查询(也称为rooted regexps),例如/ ^ prefix /

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

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

答案 2 :(得分:0)

您可以尝试以下方法:

let filter = "Dynamic";

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


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