3 回答

TA貢獻1848條經(jīng)驗 獲得超6個贊
如果要包括正則表達式選項(例如,忽略大小寫),請嘗試以下操作:
import re
regx = re.compile("^foo", re.IGNORECASE)
db.users.find_one({"files": regx})

TA貢獻1780條經(jīng)驗 獲得超4個贊
事實證明,在pymongo中進行正則表達式搜索的方式略有不同,但同樣簡單。
正則表達式如下:
db.collectionname.find({'files':{'$regex':'^File'}})
這將匹配所有具有files屬性的文檔,該文檔中包含以File開頭的項

TA貢獻1829條經(jīng)驗 獲得超13個贊
為了避免雙重編譯,您可以使用PyMongo隨附的bson regex包裝器:
>>> regx = bson.regex.Regex('^foo')
>>> db.users.find_one({"files": regx})
正則表達式只是存儲字符串而不嘗試對其進行編譯,因此find_one可以將參數(shù)檢測為“ Regex”類型并形成適當(dāng)?shù)腗ongo查詢。
我覺得這種方式比其他最佳答案略帶Pythonic,例如:
>>> db.collectionname.find({'files':{'$regex':'^File'}})
如果您打算使用正則表達式查詢,則值得閱讀bson Regex文檔,因為有一些注意事項。
- 3 回答
- 0 關(guān)注
- 1901 瀏覽
添加回答
舉報