php laravel(lumen)を使って開発しています。
phpからmysqlにPDOで接続し、mongoDBにデータを読み込むメソッドを作成しています。
現在のコード
public function fetchProduct(){ /* mysqlに接続するための処理 ・ ・ ・ */ while($row = $sth->fetch(PDO::FETCH_ASSOC)) { $exist = Resource::schema('product')->where('productId', $row['id'])->first(); if($exist) { continue; } /* 登録する処理 ・ ・ ・ $product->hoge = 'fuga'; */ $product->save(); }
現状mongoDBに登録してあるデータに対してwhereで検索をかけproductId(同じ商品)が存在したらcontinueして登録しないという処理をしています。
この場合、productスキーマの別のカラムに更新があり、それを反映させたい場合、反映ができません。(productIdで見ているので別のカラムの更新があったとしてもそれは無視されてcontinueされてしまう)
こちらmysqlのカラムの差分を検知して反映させたい場合どのように実装すればよろしいでしょうか?
今思いついているのは一つずつカラムを比べていき、もし値が違うものがあれば更新をするというやり方なのですが、カラムの数が多い場合処理も重くなると同時にコードの記述量や条件分岐もそれに応じて増えてしまうので何か良い方法があればと思い質問させていただきました。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。