PHPの新しいRegexライブラリを使用している私のAPI呼び出しで入力パラメータを一致させようとしていますが、これまで動作していません。私はこれを達成するために文字列補間を使用していますが、その結果を返します。ここに私のコードは次のとおりです。 MongoDB BSON Aggregationパイプラインの正規表現 - PythonからPHPへの正規表現の変換
$regex = new \MongoDB\BSON\Regex ("^{$this->device_id}:", 'i');
$pipeline = [
[
'$match' => [
'_id' => $regex,
]]
マイドキュメントの_idはdevice_id:datehour
あるタイプ'london_10:2016-10-05 09'
です。
私は(文字列)$の正規表現をのvar_dumpとき、私が働いているように見える次のことを、得る:
string(15) "/^london_10:/i"
問題がパイプラインにこれを追加するとき、それは空のコレクションを返すことです。私が働いて確認したが、Pythonで書かれている同等のコードを持っている、と私はPHPでそれを書き換える必要があります。
pipeline = [
{
'$match': {
"_id": re.compile("^%s:" %(self.device_id))
}
}
]
正規表現は問題ありません。あなたは '$ pipeline'を動作させる方法を見つける必要があります。それを使用する方法に関する文書はありませんか? –
正規表現を確認していただきありがとうございます。問題が私のパイプラインでさらに下流にあることがわかりました。 – ugotchi