[英]can't seem to get MongoDB find() with regex to work using PHP
我對MongoDB相當陌生(我已經閱讀了文檔)
這是我的數據示例:
{
"_id" : ObjectId("53297684786d226f57ecbd60"),
"country" : "US",
"short_state" : "FL",
"state" : "Florida",
"zip" : "33169",
"city" : "Miami",
"slug" : "miami-fl",
"search_terms" : "miami fl miami florida"
}
我正在嘗試匹配(類似於MySQL LIKE'%term%')搜索詞...我嘗試:
基本上我該如何獲取正則表達式來匹配我的search_terms的任何變體? 像miami , iami fl , ami flori , miami flo等等。
謝謝
在REGEX中,您使用^
表示需要從頭開始對表達式進行求值。 對於您的字符串:
miami fl miami florida
這是正確的,因為術語miami fl
實際上確實出現在字符串的開頭。
db.geo_table.find({search_terms : /^miami fl/i}); - MATCHES
REGEX的其他所有變體都不會出現在字符串的開頭,因為在fl
,您有一個空格。
如果要使其余部分匹配,請移除錨點,然后進行匹配:
db.geo_table.find({search_terms : /miami florida/i});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.