3 回答

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

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

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