如何使用通配符在Mongodb上进行搜索?

时间:2013-06-28 03:40:45

标签: javascript node.js mongodb

例如,如果我的关键字是“all”,我希望MongoDb返回给定字段中包含“all”的所有文档,如“edgar allan poe”或“whitney hall”。我如何在MongoDb中做到这一点?我已经被困在这里好几天了,所以任何帮助都会非常感激:)

1 个答案:

答案 0 :(得分:17)

使用正则表达式。 MongoDb有一个$regex运算符。

db.authors.find({name: {$regex: 'all', $options: 'i'}});

正则表达式操作无法使用索引,因此find()操作效率不高。索引只能用于前缀(以...开头)和区分大小写的匹配,例如此查询:

db.authors.find({name: {$regex: '^a'});