mongodbデータベースを使用するプロジェクトがあり、クエリ条件にandとorが含まれています。Thinkphpの公式マニュアルによると、getLastSqlはクエリ文を出力し、文字列モードクエリを使用します。文字列クエリ (_query) をリクエストするための (_string) は需要を満たすことができません。mongodb を使用しているユーザーは多くないと推測され、この点に関しては thinkphp 公式サポートでは十分ではありません。 thinkphp の mongodb ドライバー (Thinkphp/Extend/Driver) を開きます。 /Db/DbMongo.class.php を開き、保護された関数を見つけます。 parseThinkWhere($key,$val) メソッドで、switch に _complex がないことがわかります。これは、Thinkphp が mongodb を使用する場合、複合をサポートしていないことを意味します。クエリを追加:
コードをコピーします
特別な条件式を解析するとき、ソース コードは $query=$this->parseThinkWhere($key,$val); 特別な式が where 配列の最初の要素でない場合はエラーが発生し、else の場合は $コードで取得したクエリ配列が消えてしまいました