我正在寻找一种方法将$ in和$ regex合并到mongoDB中,并找到完全相同的问题,正是我想做的事情。问题是答案是在PHP中,我对它没有任何想法。问题是here。
你知道我是否可以在Python代码中找到相同的sollution?
$user_query = preg_replace("/[[:blank:]]+/"," ", $user_query);
$arr_query = explode(' ', $user_query);
if (count($arr_query) > 1) {
$tmp = array();
foreach ($arr_query as $q) {
$tmp[] = new MongoRegex( "/". $q ."/" );
}
$who['keywords'] = array('$in' => $tmp);
} else {
$who['keywords'] = new MongoRegex( "/". $user_query ."/" );
}
$db->collection->find( $who );
答案 0 :(得分:1)
这就是代码的作用。鉴于字符串:
"one two three"
它被转换为相当于:
{ "$in": [
{"$regex": "one"},
{"$regex": "two"},
{"$regex": "three"}
]}
但这个正则表达式完全相同:
{"$regex": "one|two|three"}
为此,您需要做的就是用|
替换空白。