2013-06-28 59 views
10

例如,如果我的關鍵字是「all」,我希望MongoDb返回給定字段中包含「edgar allan poe」或「whitney hall」等單詞「all」的所有文檔。我如何在MongoDb中做到這一點?我一直呆在這裏幾天,所以任何幫助將不勝感激:)如何使用通配符在Mongodb上進行搜索?

回答

17

通過使用正則表達式。 MongoDb有一個$regex運營商。

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

正則表達式操作不能使用索引,所以find()操作將不會有效。索引只能用於前綴(開頭)和區分大小寫的匹配,如此查詢:

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

值得注意的是,這不會使用索引,所以它不會很好地擴展。 –

+1

只有當您搜索字符串的開頭時,它纔會使用正則表達式的索引:'^ test' – moka

+1

末尾缺少'}'。 它應該讀取'db.authors.find({name:{$ regex:'all',$ options:'i'}});'。 – 2014-01-29 13:53:11

相關問題