Model :: find()から返されたDocumentSetをmemcachedに保存したいと思います。ただし、キャッシュから結果を取得した後で結果を処理しようとすると、以下のMongoExceptionが発生します。if ($this->_resource->hasNext())
具体的には、foreachを使用する場合、\ data \ source \ mongo_db\Result.phpの63行目を呼び出すと例外がスローされます。
MongoException
MongoCursorオブジェクトがコンストラクターによって正しく初期化されていません
なぜそうなるのか理解できます。
私の質問は、Model :: find()を事前入力するか、データを操作できるように独自のDocumentSetを作成する方法はありますか?通常は、配列に変換してキャッシュに保存します。ただし、作成したModelメソッドの一部にアクセスする必要があります(例:Customer :: fullName())
更新:私は、大丈夫ですが素晴らしいとは言えないちょっとした問題を見つけました。Model :: find()の結果を配列としてキャッシュに保存しています$result->to('array')
。次に、取得時に$ resultsをループし、Model::create($result, array("exists" => true)
$resultごとに新しい配列にデータを入力します。