例如,如果我的关键字是“all”,我希望MongoDb返回给定字段中包含“all”的所有文档,如“edgar allan poe”或“whitney hall”。我如何在MongoDb中做到这一点?我已经被困在这里好几天了,所以任何帮助都会非常感激:)
答案 0 :(得分:17)
使用正则表达式。 MongoDb有一个$regex运算符。
db.authors.find({name: {$regex: 'all', $options: 'i'}});
正则表达式操作无法使用索引,因此find()操作效率不高。索引只能用于前缀(以...开头)和区分大小写的匹配,例如此查询:
db.authors.find({name: {$regex: '^a'});